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

ppt做网站广告发布资质

ppt做网站,广告发布资质,黔南州住房和城乡建设局网站,wordpress文章推广插件备忘贴 转自#xff1a;【若依RuoYi短信验证码登录】汇总_数据库_z_xiao_qiang-RuoYi 若依 配置Security: 按照Security的流程图可知#xff0c;实现多种方式登录#xff0c;只需要重写三个主要的组件#xff0c;第一个用户认证处理过滤器#xff0c;第二个用户认证tok…备忘贴 转自【若依RuoYi短信验证码登录】汇总_数据库_z_xiao_qiang-RuoYi 若依 配置Security: 按照Security的流程图可知实现多种方式登录只需要重写三个主要的组件第一个用户认证处理过滤器第二个用户认证token类第三个自定义短信登录身份认证。 /*** 参考UsernamePasswordAuthenticationToken类继承AbstractAuthenticationToken重写以下几个方法自定义短信登录token验证。* 自定义短信登录token验证*/ public class UsernamePhoneAuthenticationToken extends AbstractAuthenticationToken {/*** 手机号*/private final Object principal;public UsernamePhoneAuthenticationToken(Object principals){super(null);this.principal principals;setAuthenticated(false);}public UsernamePhoneAuthenticationToken(Object principal, Collection? extends GrantedAuthority authorities){super(authorities);this.principal principal;super.setAuthenticated(true);}Overridepublic Object getCredentials() {return null;}Overridepublic Object getPrincipal() {return this.principal;}Overridepublic void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException{if(isAuthenticated){throw new IllegalArgumentException(Cannot set this token to trusted - use constructor which takes a GrantedAuthority list instead);}super.setAuthenticated(false);}Overridepublic void eraseCredentials(){super.eraseCredentials();} /*** 重写UserDetailsService类的loadUserByUsername方法实现用户验证处理。* 用户验证处理*/ Service(userDetailsByPhone) public class UsernamePhoneUserDetailsServiceImpl implements UserDetailsService {private static final Logger logger LoggerFactory.getLogger(UsernamePhoneUserDetailsServiceImpl.class);Autowiredprivate ISysUserService userService;Autowiredprivate SysUserMapper sysUserMapper;Overridepublic UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {SysUser sysUser;if(Pattern.compile(^[1][1,2,3,4,5,6,7,8,9][0-9]{9}$).matcher(username).matches()){sysUser sysUserMapper.selectUserByTel(username);}else if(username.matches(\\w{1,30}[a-zA-Z0-9]{2,20}(\\.[a-zA-Z0-9]{2,20}){1,2})){sysUser sysUserMapper.selectUserByEmail(username);}else{throw new ServiceException(请使用手机号或者邮箱进行登录!);}if(StringUtils.isNull(sysUser)){logger.info(登录用户{} 不存在., username);throw new ServiceException(登录用户 username 不存在);}return createLoginUser(sysUser);}public UserDetails createLoginUser(SysUser user){return new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user));} /*** 自定义一个短信登录的身份鉴权 UserDetailsService 只负责根据用户名返回用户信息AuthenticationProvider负责将 UserDetails 组装成 Authentication 向调用者返回。* 自定义短信登录身份认证*/ public class UsernamePhoneAuthenticationProvider implements AuthenticationProvider {private UserDetailsService userDetailsService;public UsernamePhoneAuthenticationProvider(UserDetailsService userDetailsService){setUserDetailsService(userDetailsService);}/*** 重写authentication方法实现身份验证逻辑*/Overridepublic Authentication authenticate(Authentication authentication) throws AuthenticationException {UsernamePhoneAuthenticationToken authenticationToken (UsernamePhoneAuthenticationToken) authentication;String phone (String) authenticationToken.getPrincipal();//委托 UserDetailsService 查找系统用户UserDetails userDetails userDetailsService.loadUserByUsername(phone);//鉴权成功,返回一个拥有鉴权的AbstractAuthenticationTokenUsernamePhoneAuthenticationToken authenticationTokenRes new UsernamePhoneAuthenticationToken(userDetails, userDetails.getAuthorities());authenticationTokenRes.setDetails(authenticationToken.getDetails());return authenticationTokenRes;}/*** 重写supports方法指定此AuthenticationProvider 仅支持短信验证码身份验证*/Overridepublic boolean supports(Class? authentication){return UsernamePhoneAuthenticationToken.class.isAssignableFrom(authentication);}public UserDetailsService getUserDetailsService() {return userDetailsService;}public void setUserDetailsService(UserDetailsService userDetailsService) {this.userDetailsService userDetailsService;}/*** 配置SecurityConfig 的configure方法* spring security配置* * author victor_zhang*/ EnableGlobalMethodSecurity(prePostEnabled true, securedEnabled true) public class SecurityConfig extends WebSecurityConfigurerAdapter {/*** 自定义用户认证逻辑(账号密码)*/AutowiredQualifier(userDetailsByPass)private UserDetailsService userDetailsService;/*** 自定义用户认证逻辑(手机号验证码)*/AutowiredQualifier(userDetailsByPhone)private UserDetailsService userDetailsByPhone;/*** 认证失败处理类*/Autowiredprivate AuthenticationEntryPointImpl unauthorizedHandler;/*** 退出处理类*/Autowiredprivate LogoutSuccessHandlerImpl logoutSuccessHandler;/*** token认证过滤器*/Autowiredprivate JwtAuthenticationTokenFilter authenticationTokenFilter;//此处省略n行代码....../*** 身份认证接口*/Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception{//手机或邮箱的验证码的验证auth.authenticationProvider(new UsernamePhoneAuthenticationProvider(userDetailsByPhone));//账号密码的验证 auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder());}
http://www.dnsts.com.cn/news/132818.html

相关文章:

  • 镇江微网站建设wordpress不能连接数据库
  • 低价网站建设哪家更好网站维护一年一般多少钱
  • 网站做排行多少费用wordpress 后台被锁定
  • 免费seo网站营销管理
  • 网站建设实训过程报告error 403 网站拒绝显示
  • 电子商务网站详细设计怎么提升网站的排名
  • 空调安装工做网站外贸公司网站建设费用 如何申请
  • 软件下载网站 知乎群晖 安装wordpress
  • 公司网站域名更改怎么做哪家公司网站建设好
  • 网站页面排版网店代运营公司
  • 网站建设需要什么知识临沂建展示网站
  • 做外包网站搭建深圳燃气公司地址在哪里
  • 哪些网站织梦cms建设网站业务不好做
  • 织梦网站导入链接怎么做携程网站的会计工作怎么做
  • 做网站从什么做起wordpress启动ssl
  • 电商网站开发公司哪家好临沂网
  • 为什么打不开中国建设银行网站wordpress生成html
  • 网易建站模板阿勒泰网站建设
  • 哪些公司做网站维护的做网站卖掉
  • 选择网站建设公司好wordpress淘宝客单页主题
  • 嘉兴seo网站建设wordpress删除小工具
  • 北京 网站建设 招标信息网站建设 概念
  • 网站建立与推广动画专业大学排名前十强
  • flask做的网站项目提升网站访问量
  • 进口外贸网站有哪些引流获客工具
  • 绛帐做网站有哪些app软件开发公司
  • 在线教育自助网站建设平台衡水提供网站制作公司报价
  • 购物网站创建互联网三网合一网站建设
  • 专业做学校网站的公司淄博电商网站建设
  • 网站关键词选取的步骤网站引导页利弊