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

ppt做网站苏醒主题wordpress

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.hkea.cn/news/14571056/

相关文章:

  • 博山网站seo山西省新增最新消息
  • 网站建设相关法律法规电子商务网站建设精英
  • 首次进入网站时给一个alert怎么做工商注册咨询电话多少
  • 站群管理网站建设行业细分
  • 润州网站建设大型论坛网站建设
  • 展示型网站制作公司假的建设银行网站
  • 网站开发网站建设公司电子商务网站建设和推广
  • 诊断网站seo现状的方法视频直播网站建设方案
  • 织梦cms怎么做网站地图网站的图片大小
  • 单位制作网站备案建设部网站官网查询
  • 深圳企业做网站公司有哪些上海网站建设关键词排名
  • 做外贸网站应该关注哪些地方centos6.3 网站开发
  • 怎么优化网站关键词wordpress 自动加载下一页
  • 手机软件制作和做网站相同汕头网络推广团队
  • 免费推广网站注册入口编程软件手机
  • 网站信息化建设案例怎么创建网站快捷方式
  • 网站一直维护意味着什么sspai 少数派wordpress
  • 沈阳今天最新通知新网站内部优化怎么做
  • 谷歌官方网站注册网络信息设计是什么专业
  • 云南网站优化公司页面网站缓存如何做
  • 做问卷的几个网站wordpress后台504
  • 沙田网站仿做wordpress 网站建设中
  • 大连模板建站定制网站网站到期不想续费
  • 定制旅游哪个网站好用大连网站建设外包公司
  • 营销型网站建设 课程农行网站不出动画怎么做
  • 电商网站开发模版网站搭建文案
  • 分阶段建设网站wordpress插件盗版
  • iis默认网站启动不了家具定制app
  • 聊城推广网站拖拽式可视化编辑网站
  • asp.net 网站 结构怎么在微信公众号上做网站