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

做网站用到哪些软件店铺装修公司

做网站用到哪些软件,店铺装修公司,wordpress 当前用户id,厦门网站建设优化在文章#xff1a;SpringBoot整合SpringSecurit#xff08;一#xff09;实现ajax的登录、退出、权限校验-CSDN博客 里面#xff0c;使用的session的方式进行保存用户信息的#xff0c;这一篇文章就是使用token的方式。 在其上进行的改造#xff0c;可以先看SpringBoot…在文章SpringBoot整合SpringSecurit一实现ajax的登录、退出、权限校验-CSDN博客 里面使用的session的方式进行保存用户信息的这一篇文章就是使用token的方式。 在其上进行的改造可以先看SpringBoot整合SpringSecurit一实现ajax的登录、退出、权限校验-CSDN博客,再看这个就比较好了。 1、新建过滤器将通过token查询到的用户信息存入到security中 package com.example.springboot.security.demo.filter;import com.example.springboot.security.demo.controller.LoginController; import lombok.extern.slf4j.Slf4j; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import org.springframework.web.filter.OncePerRequestFilter;import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Objects;/*** 将用户信息存入security中*/ Slf4j Component public class AuthFilter extends OncePerRequestFilter {Overrideprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {// 比如请求头中有个header叫token放置了认证后的请求头String token request.getHeader(token);log.info(用户token{}, token);if (StringUtils.hasText(token)) {// 验证token是否已经登录了的用户的token用户的token临时放在了LoginControllerUserDetails userDetails LoginController.TOKEN_USERNAME.get(token);if (Objects.nonNull(userDetails)) {// 有表示token是对的设置线程上下文认证信息,然后访问其他资源时security就会放行UsernamePasswordAuthenticationToken authenticationToken new UsernamePasswordAuthenticationToken(userDetails.getUsername(), userDetails.getPassword(), userDetails.getAuthorities());SecurityContextHolder.getContext().setAuthentication(authenticationToken);}}filterChain.doFilter(request, response);} } 2、修改security的配置 /*** 密码加密方式* //使用BCrypt进行密码加密校验* return*/Beanpublic PasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder();}/*** 2.0配置security通过token访问不通过session访问* param http* throws Exception*/Resourceprivate AuthFilter authFilter;Overrideprotected void configure(HttpSecurity http) throws Exception {http.csrf().disable();//禁用CSRF控制即spring security不再限制CSRF即跨越访问http.authorizeRequests().antMatchers(/static/**).permitAll()//不需要登录认证就可以访问,静态资源等不需要验证.antMatchers(/login).permitAll() // 允许任何人访问登录接口.anyRequest().authenticated();//其他路径必须验证身份http.sessionManagement(sessionManager - sessionManager.sessionCreationPolicy(SessionCreationPolicy.STATELESS)); //不再管理session// 设置用户访问前filterhttp.addFilterBefore(authFilter, UsernamePasswordAuthenticationFilter.class);http.formLogin().loginPage(/login-view.html)//自定义登录页面路径加载登录的html页面.successHandler(userLoginAuthenticationSuccessHandler)//验证成功处理.failureHandler(userLoginAuthenticationFailureHandler)//验证失败处理.permitAll();//登录页面无需设置验证http.logout().logoutUrl(/logout)//登出路径.logoutSuccessHandler(userLogoutSuccessHandler)//登出处理.permitAll()//不需要身份认证.and().exceptionHandling().accessDeniedHandler(userAuthenticationAccessDeniedHandler);//无权限时的处理} 3、修改登录方法后端获取到账号、密码后根据账号查询到用户信息在校验密码如果密码成功就生成token并且把token放在内存或者redis中就完成了 /*** 简单的存放用户登录认证成功信息的地方*/public final static MapString, UserDetails TOKEN_USERNAME new HashMap();Resourceprivate UserDetailsServiceImpl userDetailsService;/*** SecurityConfig中配置的密码加密*/Resourceprivate PasswordEncoder passwordEncoder;/*** 登录认证获得token* param account 登录账号* param password 密码* return 认证token*/ResponseBodyPostMapping(/login)public JsonData login(String account, String password) {JsonData jsonData null;//根据账号查询用户信息UserDetails userDetails userDetailsService.loadUserByUsername(account);if (userDetails null) {jsonData new JsonData(401,用户名不存在);return jsonData;}//密码校验if(!passwordEncoder.matches(password,userDetails.getPassword())) {jsonData new JsonData(401,用户或密码错误);return jsonData;}// 认证成功发个token返回给前端String token UUID.randomUUID().toString();TOKEN_USERNAME.put(token, userDetails);System.out.println(token: token);jsonData new JsonData(200,token);return jsonData;} 4、测试 4.1、获取token 4.2、通过token查询信息
http://www.dnsts.com.cn/news/174554.html

相关文章:

  • pc网站直接转换成移动端的网站在线学习建设网站
  • 网站开发是什么专业百度南京网上注册公司流程
  • 建站教学视频wordpress 付费主题 高级功能编辑器
  • 网站开发实训指导书电子商务网站建设方面的论文
  • 海口企业模板建站wordpress模板中文
  • 北京网站开发需要多少钱又名林州站长网
  • 冠县品牌网站建设推广商城网站wordpress
  • 怎么根据网站前端做网站后台兴县做网站
  • 园区网互联及网站建设项目如何区分网站开发语言
  • 南宁网站建设q479185700惠官方网站侵权
  • 建设网站框架网站开发用哪种语言
  • 打开这个网站网站建设淘宝店铺模板
  • led灯 东莞网站建设网站建设哪家质量好
  • 常州做网站公司排名google关键词
  • 西安专业承接网站搭建模板门户网站运营
  • 抚顺网站建设7113做3d ppt模板下载网站有哪些
  • 仙居制作网站wordpress表单提交显示插件
  • 局域网做网站 内网穿透最好的网页设计公司
  • 网站开发大概多少钱网站免费下载安装
  • 东莞网站建设排名 南城广州外贸网站建设推广
  • 做响应式网站的意义做网站什么空间比较好
  • 如何建网站挣钱唐山企业网站模板建站
  • 网站建设网站软件有哪些郑州做公司网站
  • 做导航网站暴雪国服
  • 怎么兼职做网站腾讯游戏推广代理加盟
  • 北京网站手机站建设公司电话怎么仿制别人的网站
  • 如何做高端网站沈阳医大一医院男科咨询
  • cms网站管理系统泉州晋江网站建设
  • 网站优化招聘网页设计建设网站模板
  • 网站备案人授权书大连零基础网站建设培训哪里有