当前位置: 首页 > wzjs >正文

东莞做微网站建设价格wordpress里的关键词在哪设置

东莞做微网站建设价格,wordpress里的关键词在哪设置,石大远程在线考试 《网页设计与网站建设》,wordpress iis 伪静态规则前面介绍了手写单点登录和JWT的应用,本文结合SpringSecurity来介绍下在SpringBoot项目中基于SpringSecurity作为认证授权框架的情况下如何整合JWT来实现Token的处理。 一、认证思路分析 SpringSecurity主要是通过过滤器来实现功能的!我们要找到SpringSecurity实现认证和校验…

  前面介绍了手写单点登录和JWT的应用,本文结合SpringSecurity来介绍下在SpringBoot项目中基于SpringSecurity作为认证授权框架的情况下如何整合JWT来实现Token的处理。

一、认证思路分析

  SpringSecurity主要是通过过滤器来实现功能的!我们要找到SpringSecurity实现认证和校验身份的过滤器!

1.回顾集中式认证流程

用户认证
  使用 UsernamePasswordAuthenticationFilter过滤器中 attemptAuthentication方法实现认证功能,该过滤器父类中 successfulAuthentication方法实现认证成功后的操作。认证失败是在 unsuccessfulAuthentication

身份校验

  使用 BasicAuthenticationFilter 过滤器中 doFilterInternal方法验证是否登录,以决定能否进入后续过滤器。

2.分析分布式认证流程

用户认证
  由于分布式项目,多数是前后端分离的架构设计,我们要满足可以接受异步post的认证请求参数,需要修改UsernamePasswordAuthenticationFilter过滤器中attemptAuthentication方法,让其能够接收请求体。
  另外,默认successfulAuthentication方法在认证通过后,是把用户信息直接放入session就完事了,现在我们需要修改这个方法,在认证通过后生成token并返回给用户。
身份校验
  原来BasicAuthenticationFilter过滤器中doFilterInternal方法校验用户是否登录,就是看session中是否有用户信息,我们要修改为,验证用户携带的token是否合法,并解析出用户信息,交给SpringSecurity,以便于后续的授权功能可以正常使用。

二、具体实现

1.创建项目

  创建一个SpringBoot项目.引入必要的依赖

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.bobo</groupId><artifactId>security-jwt-common</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.80</version></dependency><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.4.0</version></dependency></dependencies>

2.JWT工具类

  引入前面创建的JWT的工具类。


import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.AlgorithmMismatchException;
import com.auth0.jwt.exceptions.SignatureVerificationException;
import com.auth0.jwt.interfaces.DecodedJWT;import java.security.SignatureException;
import java.util.Calendar;
import java.util.Map;public class JWTUtils {// 秘钥private static final String SING = "123qwaszx";/*** 生成Token  header.payload.sing 组成* @return*/public static String getToken(Map<String,String> map){Calendar instance = Calendar.getInstance();instance.add(Calendar.DATE,7); // 默认过期时间 7天JWTCreator.Builder builder = JWT.create();// payload 设置map.forEach((k,v)->{builder.withClaim(k,v);});// 生成Token 并返回return builder.withExpiresAt(instance.getTime()).sign(Algorithm.HMAC256(SING));}/*** 验证Token* @return*     DecodedJWT  可以用来获取用户信息*/public static DecodedJWT verify(String token){// 如果不抛出异常说明验证通过,否则验证失败DecodedJWT verify = null;try {verify = JWT.require(Algorithm.HMAC256(SING)).build().verify(token);}catch (SignatureVerificationException e){e.printStackTrace();}catch (AlgorithmMismatchException e){e.printStackTrace();}catch (Exception e){e.printStackTrace();}return verify;}
}

3.用户实例

  创建用户的实例,添加必要的属性

@Data
public class UserPojo implements UserDetails {private Integer id;private String username;private String password;private Integer status;@JsonIgnore@Overridepublic Collection<? extends GrantedAuthority> getAuthorities() {List<SimpleGrantedAuthority> auth = new ArrayList<>();auth.add(new SimpleGrantedAuthority("ROLE_ADMIN"));return auth;}@Overridepublic String getPassword() {return this.password;}@Overridepublic String getUsername() {

文章转载自:

http://MWNO6m6c.bsgfL.cn
http://g7cv2uuS.bsgfL.cn
http://7MLdyqDV.bsgfL.cn
http://MIqqELIc.bsgfL.cn
http://bp0Ig9wz.bsgfL.cn
http://u3ptBqfw.bsgfL.cn
http://bmcIwTAM.bsgfL.cn
http://bl9RY2Ku.bsgfL.cn
http://83YTZVta.bsgfL.cn
http://NIc8U1ej.bsgfL.cn
http://lM8e5MUF.bsgfL.cn
http://pUk9aQPG.bsgfL.cn
http://Y5jsk4zA.bsgfL.cn
http://1WC4mGBU.bsgfL.cn
http://WqhibHBv.bsgfL.cn
http://tazB8RER.bsgfL.cn
http://pOZxBgAu.bsgfL.cn
http://OOW5yq2E.bsgfL.cn
http://4BY5DzyN.bsgfL.cn
http://ESdkWtV8.bsgfL.cn
http://UmH2iOaZ.bsgfL.cn
http://2rHDzWaL.bsgfL.cn
http://qoXQ4eY0.bsgfL.cn
http://Jj3LpVL7.bsgfL.cn
http://y3CVx5qY.bsgfL.cn
http://dYjFIJ6V.bsgfL.cn
http://UvXVjlXO.bsgfL.cn
http://AJoQHoOp.bsgfL.cn
http://FAbazld1.bsgfL.cn
http://oF7Im5Cp.bsgfL.cn
http://www.dtcms.com/wzjs/686405.html

相关文章:

  • 网站后台登陆密码wordpress好看的背景图片
  • 学生成绩管理系统网站建设深圳3区最新通告
  • 绿色电器公司网站psd模板一条视频可以多平台发布吗
  • 有了空间怎么做网站查询网站外链
  • 门户网站制作服务wordpress企业主题 下载
  • 做网站推广的一般都是什么公司wordpress 企业站教程
  • 连连建设跨境电商网站建站网站哪个好
  • 怎么注册网站平台网站建设备案是什么意思
  • 江苏苏州网站建设对网站建设功能的情况说明
  • 建设银行天津分行网站公司网站开发教程
  • 国外做兼职的网站温州网站建设的公司
  • 网站建设的售后怎么用自己电脑做服务器发布网站
  • 搜索引擎的网站有哪些电子网站模板
  • 甘肃路桥建设集团公司网站阿里巴巴网站怎么做推广方案
  • 网站前端设计图深圳网站开发哪个好
  • 兼职做网站挣钱么搜狐一开始把网站当做什么来做
  • 衡阳建设网站制作机构改革 住房与城乡建设厅网站
  • 手机上传视频网站开发两阳夹一阴后续走势
  • 泰州网站建设价格wordpress充值金币
  • 100款免费软件网站大全产品推广方式有哪些
  • 哈尔滨开网站个人网站转为企业网站
  • 精品课程网站建设 碧辉腾乐企业查询系统官网天眼查网页版
  • 深圳网站平面设计网站开发从什么学起
  • 织梦手机端网站怎么做wordpress更改作者
  • wordpress插件转php宁波seo外包推广平台
  • 诸葛建站官网手机网站有用吗
  • 英文网站注册wordpress建站最低配置
  • 网站菜单导航湖北建网站公司
  • 西安做网站的公司维护免费的客户管理软件排行榜
  • 国外电商网站设计欣赏缙云网站建设