美文网首页
spring-security+jwt认证

spring-security+jwt认证

作者: ksice | 来源:发表于2018-03-27 10:04 被阅读0次

SpringSecurity的最基本的使用(没有深入的查看源码)

security依赖导入

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-security</artifactId>

</dependency>

当你导入依赖什么都不做,直接运行程序,这时你访问任何一个URL,都会弹出一个“需要授权”的验证框,如图:

spring security 会默认使用一个用户名为:user 的用户,密码就是 启动的时候生成的(通过控制台console中查看)

springsecurity最主要流程分为三步,认证、授权、鉴权,其中security主要使用四大接口

UserDetailsService、AccessDecisionManager、FilterInvocationSecurityMetadataSource、WebSecurityConfigurerAdapter,

1、UserDetailsService中包含一个loadUserByUsername方法,此方法用于接收登录账号,从数据库查询出此用户信息(角色、密码等),用于后面的使用,这也是security的验证

2、FilterInvocationSecurityMetadataSource用于拦截所有的请求,当收到一个请求时,从数据库查询出能访问这个请求的角色,返回给security框架

3、AccessDecisionManager此接口用于放行和拦截请求,继承此接口重写decide,supports方法

3.1、decide用于决定用户是否有权访问此路径,(个人通俗理解,return代表通过)其中的业务逻辑根据需求自己判断

4、WebSecurityConfigurerAdapter是security的总配置,重写config方法进行相对应的操作

4.1、这里我们采用的认证是jwt认证,所以当你自定义过滤器的时候需要把自定义的过滤器也添加到配置中

这个config的配置是比较复杂的具体我也不是很了解,借网上资料(只有一部分简单的方法使用)

5、spring security的一些方法的使用

5.1、SessionCreationPolicy.STATELESS无状态的Session机制(即Spring不使用HTTPSession),对于所有的请求都做权限校验,这样Spring Security的拦截器会判断所有请求的Header上有没有”X-Auth-Token”。对于异常情况(即当Spring Security发现没有),Spring会启用一个认证入口:new RestAuthenticationEntryPoint,在我们这个场景下,这个入口只是简单的返回一个401即可:

5.2、还可以配置登录失败的处理和成功的处理

5.3、authorizeRequests()用来授权使用,如果需要添加url过滤器,前面都需要添加此方法

6、spring提供FilterRegistrationBean,此类提供对filter排序处理,可以为filter设置排序值,

让spring在注册web filter之前排序后再依次注册,实现spring的跨域请求

6.1、此类提供setOrder方法,可以为filter设置排序值,让spring在注册web filter之前排序后再依次注册。order越小越先执行

config.addAllowedOrigin("http://localhost")此方法用来设置访问源地址, “*”代表全部。”**”代表适配所有接口。 

其中addAllowedOrigin(String origin)方法是追加访问源地址。如果不使用”*”(即允许全部访问源),则可以配置多条访问源来做控制。

config.addAllowedHeader("*") 设置访问源请求头 ,

config.addAllowedMethod("*")设置访问源请求方法,

source.registerCorsConfiguration("/**",config)对接口配置跨域设置

相关文章

  • spring-security+jwt认证

    SpringSecurity的最基本的使用(没有深入的查看源码) security依赖导入

  • spring-security+jwt+redis实现登录

    关于核心登录逻辑请对照上篇spring-security+jwt实战,下面主要介绍验证码接口实现。 核心api 生...

  • spring-security+jwt实战

    权限控制采用 RBAC思想。简单地说,一个用户拥有若干角色,每个角色拥有一个默认的权限,每一个角色拥有若干个菜单,...

  • HTTP中的认证

    一、认证方式 BASIC认证(基本认证) DIGEST认证(摘要认证) SSL客户端认证 ForBase认证(基于...

  • 阿里云大数据ACA笔记1:认证体系

    认证体系 阿里云认证行业认证专项认证 阿里云认证等级 AssociateProfessorExpert 行业认证 ...

  • 认证

    基本权限认证分为OAuth认证,摘要认证和基本认证,证书认证,表单认证 OAuth 认证流程详解: 摘抄自:htt...

  • 做微博需要做的事情

    一、基础资料 二、认证 认证分为:身份认证、兴趣认证、自媒体认证、金V认证、超话认证、故事红人认证。 3、发文 4...

  • Http与Https认证

    作者:烨竹 HTTP的认证方式 BASIC 认证(基本认证)DIGEST 认证(摘要认证)SSL 客户端认证For...

  • 抖音怎么官方认证,抖音怎么申请官方认证

    抖音怎么官方认证,抖音怎么申请官方认证? 官方认证 1、官方认证包括三种,分别是:个人认证、企业认证、机构认证; ...

  • Apache用户认证、域名跳转、Apache访问日志

    Apache用户认证 针对目录认证 用户认证 文件认证文件认证 域名跳转 域名跳转 Apache访问日志 Apac...

网友评论

      本文标题:spring-security+jwt认证

      本文链接:https://www.haomeiwen.com/subject/zljjcftx.html