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

做网站和做网店哪个好正规seo大概多少钱

做网站和做网店哪个好,正规seo大概多少钱,wordpress4.5.3中文版,做网站要用写接口在文章:SpringBoot整合SpringSecurit(一)实现ajax的登录、退出、权限校验-CSDN博客 里面,使用的session的方式进行保存用户信息的,这一篇文章就是使用token的方式。 在其上进行的改造,可以先看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 Map<String, UserDetails> TOKEN_USERNAME = new HashMap<>();@Resourceprivate UserDetailsServiceImpl userDetailsService;/*** SecurityConfig中配置的密码加密*/@Resourceprivate PasswordEncoder passwordEncoder;/*** 登录认证,获得token* @param account 登录账号* @param password 密码* @return 认证token*/@ResponseBody@PostMapping("/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.yayakq.cn/news/123397/

相关文章:

  • 深圳协会网站建设阿里云企业网站备案
  • 广东专业企业网站建设wordpress文件介绍
  • 网站空间去哪买wordpress 增加 推荐
  • 用python做网站上海外贸服装一条街
  • 济南网站制作的公司那里可以免费做网站
  • 付网站建设费用 会计科目建企业网站浩森宇特
  • 郑州做品牌网站的公司漳浦建设局网站更新
  • 十大倒闭的互联网公司济南优化网站关键词
  • 郑州网站模板建设asp网站如何运行
  • 专业做效果图网站青海兴远建设工程有限公司网站
  • 珠海哪个建设网站建设好公司官网是什么意思
  • 做外贸一般用哪些网站好自己做的网站上传
  • 浙江网站推广数据中心托管
  • 手机网站建设教程项目外包平台
  • 网网站制作开发wordpress 注册邮件设置密码
  • 相城区建设网站网站备案号和查询的不一样
  • 衡阳网站开发有哪些公司迪奥网页设计图片
  • 网站排名seo企业门户网站建设市场
  • 电影网站做静态是不是好一些wordpress显示栏目名称
  • 为什么登录不上建设银行网站网站做宣传
  • 电子商务推广网站京东网站建设策划书
  • 南山网站设计公司佛山网站建设公司
  • 获取网站目录下所有文件丰泽区住房和城乡建设局投诉网站
  • 本溪网站设计大型电商网站开发规划
  • 成都网站app开发无锡网页制作服务
  • ipv6 网站开发wordpress products
  • 建设网站的目的和内容佛山网站改版
  • 电台网站建设要求企业咨询管理公司起名
  • phpcms律师网站源码大气律师事务所模板中华建筑网官网
  • 城乡建设部网站广州市企业年底做网站的好处