Spring Security

Posted 北方有梦_hsp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Security相关的知识,希望对你有一定的参考价值。

Spring Security

shiro和SpringSecurity

  • 相同点:都是做权限认证的
  • 区别:
  1. Shiro比Spring Security更容易使用,也就是实现上简单一些,同时基本的授权认证Shiro也基本够用

  2. Spring Security社区支持度更高,Spring社区的亲儿子,支持力度和更新维护上有优势,同时和Spring这一套的结合较好。

  3. Shiro 功能强大、且 简单、灵活。是Apache 下的项目比较可靠,且不跟任何的框架或者容器绑定,可以独立运行。

两个重要接口

UserDetailsservice接口:查询数据库用户名和密码过程
  • 创建类继承UsernamePasswordAuthenticationFilter,重写三个方法
  • 创建类实现JseIDetailservice,编写查询数据过程,返回User对象,这个User对象是安全框架提供对象

PasswordEncoder数据加密接口:用于返回User对象里面密码加密

设置用户名和密码(三种)

1.通过配置文件配置

application.properties文件修改
  • spring. security. user. name atguigu
  • spring. security. user. password atguigu

2.配置类

如果密码加密,需要实现PasswordEncoder


3.自定义实现类设置


SpringBoot集成Spring Security

1.导入依赖


2. 继承WebSecurityConfigurerAdapter


没有权限默认跳到首页 + 注销

Spring 中的 spring-security-oauth2 与 spring-security-oauth2-core

【中文标题】Spring 中的 spring-security-oauth2 与 spring-security-oauth2-core【英文标题】:spring-security-oauth2 vs spring-security-oauth2-core in Spring 【发布时间】:2019-09-25 05:04:18 【问题描述】:

spring-security-oauth2和spring-security-oauth2-core有什么区别? spring-security-oauth2 被 spring-security-oauth2-core 替代了吗?

spring-security-oauth2 发布链接: http://repo.spring.io/release/org/springframework/security/oauth/spring-security-oauth2/

spring-security-oauth2-core 发布链接 http://repo.spring.io/release/org/springframework/security/spring-security-oauth2-core/

【问题讨论】:

【参考方案1】:

是的,有很大的不同。 spring-security-oauth2(Spring Security OAuth 项目)是no longer being actively developed。

展望未来,它将在 Spring Security 5 中实现(在 spring-security-oauth2-core 中)。这很令人困惑,因为许多教程使用以前的 Spring Security OAuth(@EnableResourceServer@EnableAuthorizationServer@EnableOAuth2Sso 注释通常会放弃它)。

【讨论】:

【参考方案2】:

第一个链接与 Spring 4 相关,它与 Spring Security 版本相匹配。您可以在 pom.xml 文件中验证这一点。

第二个链接与 Spring 5 和 Spring Security 5 相关。这不仅可以从您在该链接中看到的版本中直接看出,而且您可以在 Spring Security 5 documentation 中找到直接命名的依赖项。

【讨论】:

【参考方案3】:

区别在spring git仓库中有描述

https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Migration-Guide

它是旧库:security/oauth/spring-security-oauth2/ 如您所见,该库位于 spring-security 的“oauth”组中。

我不建议将旧库用作客户端,因为存在许多未解决的问题,包括有关存储 clientContext 的问题(库使用代理而不是普通实体,因此您在使用 MA 时会遇到问题带分布式缓存)。此外,它不允许同时使用多个 OAuth2.0 提供程序(只有一个)。

同时,该库提供了一个显着优势,即使用未在新库中实现的授权服务器。

【讨论】:

以上是关于Spring Security的主要内容,如果未能解决你的问题,请参考以下文章

在 spring-boot 中如何分离前端和后端机器?

Java后端看懂Spring源码,到底有没有用?

Spring实战笔记:后端中的Spring

Spring Oauth2 和 Rest 后端

没看过Spring源码,找Java后端开发岗的事先缓缓

Spring Cloud 配置 JDBC 后端