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

做网站fjfzwl门户wordpress主题下载

做网站fjfzwl,门户wordpress主题下载,宿迁做网站大公司,tv做后缀的动漫网站文末有本篇文章的项目源码文件可供下载学习 在这个案例中,我们已经实现了自定义登录URI的操作,登录成功之后,我们再次访问后端中的API的时候要在请求头中携带token,此时的token是jwt字符串,我们需要将该jwt字符串进行解析,查看解析后的User对象是否处于登录状态.登录状态下,将…

文末有本篇文章的项目源码文件可供下载学习

在这个案例中,我们已经实现了自定义登录URI的操作,登录成功之后,我们再次访问后端中的API的时候要在请求头中携带token,此时的token是jwt字符串,我们需要将该jwt字符串进行解析,查看解析后的User对象是否处于登录状态.登录状态下,将用户信息封装成Authentication对象用于后续过滤器验证,并放行,未登录状态下直接拒绝访问.

0.配置思路

  1. 在本案例基础上,进行升级.
  2. 新建JwtAuthenticateFilter.java,实现认证过滤器.
  3. 配置SecurityConfig.java,将JwtAuthenticateFilter加入过滤器链.
  4. 进行相关测试.

1.新建JwtAuthenticateFilter.java

@Component
public class JwtAuthenticateFilter extends OncePerRequestFilter {@Autowiredprivate UserMapper userMapper;@Overrideprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
//        1.获取tokenString token = request.getHeader("token");if (!StringUtils.hasText(token)) {filterChain.doFilter(request, response);return;}
//        2.解析tokenClaims claims = JwtUtil.parseJWT(token);String userId = claims.getId(); //获取用户IdString userDetailsString = claims.getSubject();UserDetailsImpl userDetails = JSON.parseObject(userDetailsString, UserDetailsImpl.class);
//        3.获取用户信息User user = userMapper.findById(userId);if (Objects.isNull(user) || user.getCurrentFlag().equals("logout")) {throw new RuntimeException("用户未登录");}
//        4.存入SecurityContextHolder//获取权限信息封装到authenticationToken对象中UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(userDetails,null,null);SecurityContextHolder.getContext().setAuthentication(authenticationToken);
//        5.放行filterChain.doFilter(request, response);}
}

2.配置SecurityConfig.java

    @Overrideprotected void configure(HttpSecurity http) throws Exception {http
//                关闭csrf.csrf().disable()
//                不通过session获取SecurityContext.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().authorizeRequests()
//                放行登录接口,允许匿名访问.antMatchers("/security/login").anonymous()
//                登录不登录的都可以访问,放行
//                .antMatchers("/hello").permitAll()
//                除上面外的所有请求全部需要认证授权.anyRequest().authenticated();//        配置认证jwt过滤器http.addFilterBefore(jwtAuthenticateFilter, UsernamePasswordAuthenticationFilter.class);}

3.相关测试

3.1未登录测试

我们发现返回403状态码,被拒绝访问.

3.2登录之后访问测试

我们发现返回了token值,将token值复制下来,放到自定义访问的请求头中,之后进行访问测试.

我们发现就能正常访问了.

本篇文章的项目源码文件,可点击下载学习

http://www.dtcms.com/a/596306.html

相关文章:

  • Elasticsearch的用法
  • LLMChain for Chat Models in LangChain
  • 【JAVA进阶】SpringBoot启动流程深度解析:从main方法到应用就绪的完整旅程
  • 昆明建设厅培训网站创意设计文案
  • 如何为虚拟机配置多渠道、可聚合、更智能的告警通知机制?
  • 分布式容器镜像自动同步系统 设计方案
  • 智联无界,术教相融:分布式医疗示教系统重构医疗教学新生态
  • 【深度学习新浪潮】三维数字孪生核心算法深度解析
  • Clustering vs Classification|聚类vs分类
  • Java-小林coding八股文(1)
  • Selenium详细教程
  • 门户网站开发介绍上海华谊集团建设有限公司网站
  • 8. Linux-riscv内存管理35-40问
  • Vue3响应式系统中,对象新增属性、数组改索引、原始值代理的问题如何解决?
  • HTTP接口和Dubbo接口区别
  • K8S中ETCD高可用机制详解
  • jmeter发送数据到sasl加密的kafka
  • 【MATLAB代码】二维平面的TOA定位,GDOP(几何精度因子)和CRLB(克拉美罗下界)计算与输出
  • 【Hadoop】Hadoop核心基础——YARN 框架架构与运行机制(Hadoop 集群的 “资源管家”)
  • MI50运算卡使用llama.cpp的ROCm后端运行gpt-oss-20b的速度测试
  • 聊聊关于hive“中文乱码”问题
  • 一般建设网站需要多少预算酷站 网站
  • ASP.NET 实战:用 CSS 选择器打造一个可搜索、响应式的书籍管理系统
  • 消息队列防止数据丢失问题
  • Spring Cloud Bus 事件广播机制
  • 广州巨腾建网站公司郑州网站app开发
  • 银河麒麟服务器安装图形化界面
  • 【源码+文档+调试讲解】基于Spring Boot的考务管理系统设计与实现 085
  • LeetCode 421 - 数组中两个数的最大异或值
  • 【笔记】xFormers版本与PyTorch、CUDA对应关系及正确安装方法详解