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

网站流量刷重庆网站建设招聘

网站流量刷,重庆网站建设招聘,公司网站的设计规划,网站开发公司属于什么行业spring security他是自带一个页面的,如果我们没有页面的话,他会进行一个账号密码的校验,成功就会走成功的处理器,失败就会走失败的处理器 成功处理器 package com.lzy.security;import cn.hutool.json.JSONUtil; import com.lzy.common.lang.Result; import org.springframew…spring security他是自带一个页面的,如果我们没有页面的话,他会进行一个账号密码的校验,成功就会走成功的处理器,失败就会走失败的处理器 成功处理器 package com.lzy.security;import cn.hutool.json.JSONUtil; import com.lzy.common.lang.Result; import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.authentication.AuthenticationFailureHandler; import org.springframework.security.web.authentication.AuthenticationSuccessHandler; import org.springframework.stereotype.Component;import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; Componentpublic class LoginSuccessHandler implements AuthenticationSuccessHandler {Overridepublic void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {// 将响应的内容类型设置为JSONresponse.setContentType(application/json;charsetutf-8);// 获取响应的输出流ServletOutputStream out response.getOutputStream();//生成JWT,并且放置到请求头// 创建一个包含异常消息的Result对象Result result Result.success(成功);// 将Result对象转换为JSON字符串并写入输出流out.write(JSONUtil.toJsonStr(result).getBytes(UTF-8));// 刷新输出流out.flush();// 关闭输出流out.close();}} 失败处理器 package com.lzy.security;import cn.hutool.json.JSONUtil; import com.lzy.common.lang.Result; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.authentication.AuthenticationFailureHandler; import org.springframework.stereotype.Component;import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; Component public class LoginFailureHandler implements AuthenticationFailureHandler {// 当身份验证失败时调用此方法Overridepublic void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {// 将响应的内容类型设置为JSONresponse.setContentType(application/json;charsetutf-8);// 获取响应的输出流ServletOutputStream out response.getOutputStream();// 创建一个包含异常消息的Result对象Result result Result.fail(exception.getMessage());// 将Result对象转换为JSON字符串并写入输出流out.write(JSONUtil.toJsonStr(result).getBytes(UTF-8));// 刷新输出流out.flush();// 关闭输出流out.close();} }怎么调用他们 package com.lzy.config;import com.lzy.security.CaptchaFilter; import com.lzy.security.LoginFailureHandler; import com.lzy.security.LoginSuccessHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;Configuration EnableWebSecurity EnableGlobalMethodSecurity(prePostEnabled true) // 开启方法级别的权限注解 public class SecurityConfig extends WebSecurityConfigurerAdapter {AutowiredLoginFailureHandler loginFailureHandler;AutowiredLoginSuccessHandler loginSuccessHandler;AutowiredCaptchaFilter captchaFilter;private static final String[] URL_WHITELIST {/login,/logout,/captcha,/favicon.ico, // 防止 favicon 请求被拦截};protected void configure(HttpSecurity http) throws Exception {//跨域配置http.cors().and().csrf().disable()//登录配置.formLogin().successHandler(loginSuccessHandler).failureHandler(loginFailureHandler)//禁用session.and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)//配置拦截规则.and().authorizeRequests()//白名单.antMatchers(URL_WHITELIST).permitAll()//其他请求都需要认证.anyRequest().authenticated()//异常处理器//配置自定义的过滤器.and().addFilterBefore(captchaFilter, UsernamePasswordAuthenticationFilter.class);}} 因为spring security是不带验证码过滤器的,所以得我们自己写,并且要写在账号密码过滤器前,失败就走失败处理器 验证码过滤器 package com.lzy.security;import com.lzy.common.exception.CaptureException; import com.lzy.util.Constants; import com.lzy.util.RedisUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.AuthenticationException; import org.springframework.stereotype.Component; 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;Component public class CaptchaFilter extends OncePerRequestFilter {AutowiredRedisUtil redisUtil;AutowiredLoginFailureHandler loginFailureHandler;Overrideprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {//判断是不是登录请求String url request.getRequestURI();if (url.equals(/login) request.getMethod().equals(POST)) {//如果是登录请求判断验证码是否为空try {//验证验证码voildCaptcha(request, response, filterChain);} catch (CaptureException e) {//交给登录失败处理器loginFailureHandler.onAuthenticationFailure(request, response, e);}}filterChain.doFilter(request, response);}private void voildCaptcha(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) {String captcha request.getParameter(code);String key request.getParameter(token);//判断验证码是否为空if (captcha.isBlank() || key.isBlank()) {throw new CaptureException(验证码不能为空);}//判断验证码是否正确if (!redisUtil.hget(Constants.CAPTURE, key).equals(captcha)) {throw new CaptureException(验证码错误);}//删除验证码redisUtil.hdel(Constants.CAPTURE, key);}} 也是在刚才的securitycofig下面调用,代码就是刚才那个
http://www.zqtcl.cn/news/956838/

相关文章:

  • wordpress手机版如何设置福鼎整站优化
  • 网站建设小程序定制开发北京东宏建设网站
  • 网站制作还花钱网站图怎么做
  • 免费搭网站wordpress minty
  • 海沧建设网站多少国外调色网站
  • 中企动力建站怎么样网站建设与设计的心得体会
  • 打开网站出现directoryj2ee做网站
  • 如何建设一个视频网站西安个人做网站
  • wordpress站群教程市场营销培训课程
  • 17网站一起做网店白沟简单网页制作图片
  • 网站建设项目需求分析流程做商业地产的网站
  • 百度建站商业网点的定义
  • 古镇建设网站经济研究院网站建设方案
  • 会员网站开发百度自己的宣传广告
  • 重庆网络推广网站推广自己设计图纸的软件
  • 国内免费的短视频素材网站什么网站做博客好
  • 个体户网站建设wordpress修改作者链接
  • 做企业网站怎么样如何做网站的登录注册
  • 网站建设中标怎么做网站文字图片
  • 济南网站推广徽hyhyk1公司展示网站模板
  • ae免费模板下载网站视频网站数据库设计
  • 找做金融的网站网站建设方面存在的问题
  • 门户网站建设与开发wordpress添加文章总数标签总数
  • 想创办一个本地的人才招聘网站_如何做市场调查问卷windows7优化大师下载
  • 做网站建设要什么证视频付费网站建设
  • html网站建设实例代码软件下载app排行榜
  • 高端个人网站网站建设密码
  • 全网seo秦皇岛市做网站优化
  • 简述站点推广有哪些方式大兴做网站公司
  • 网站关键词密度查询太仓网站设计早晨设计