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

广州建站模板厂家h5制作网站开发

广州建站模板厂家,h5制作网站开发,企业网站源码 多语言,网站需要兼容哪些浏览器Step 1: 创建自定义UserDetails类 自定义一个实现UserDetails接口的类#xff0c;用于表示用户信息。您可以在这个类中添加自己需要的属性和方法来存储用户信息。 public class CustomUserDetails implements UserDetails {private String email;private boolean enabled;pri…Step 1: 创建自定义UserDetails类 自定义一个实现UserDetails接口的类用于表示用户信息。您可以在这个类中添加自己需要的属性和方法来存储用户信息。 public class CustomUserDetails implements UserDetails {private String email;private boolean enabled;private ListGrantedAuthority authorities;public CustomUserDetails(String email, boolean enabled, ListGrantedAuthority authorities) {this.email email;this.enabled enabled;this.authorities authorities;}// Implement other UserDetails methods...Overridepublic String getUsername() {return email;}// Getters and setters... } Step 2: 创建自定义过滤器 创建一个自定义的过滤器用于处理邮箱验证码登录逻辑。这个过滤器将在用户登录时验证邮箱和验证码并完成用户认证过程。 public class EmailVerificationAuthenticationFilter extends AbstractAuthenticationProcessingFilter {public EmailVerificationAuthenticationFilter() {super(new AntPathRequestMatcher(/login/email, POST));}Overridepublic Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response)throws AuthenticationException {String email obtainEmail(request);String verificationCode obtainVerificationCode(request);email (email ! null) ? email.trim() : ;verificationCode (verificationCode ! null) ? verificationCode.trim() : ;EmailVerificationToken authRequest new EmailVerificationToken(email, verificationCode);return this.getAuthenticationManager().authenticate(authRequest);}private String obtainEmail(HttpServletRequest request) {return request.getParameter(email);}private String obtainVerificationCode(HttpServletRequest request) {return request.getParameter(verificationCode);} } Step 3: 创建自定义认证令牌 创建一个自定义的认证令牌继承自UsernamePasswordAuthenticationToken用于封装用户的邮箱和验证码信息。 public class EmailVerificationToken extends UsernamePasswordAuthenticationToken {private final String email;private final String verificationCode;public EmailVerificationToken(String email, String verificationCode) {super(email, verificationCode);this.email email;this.verificationCode verificationCode;}public String getEmail() {return email;}public String getVerificationCode() {return verificationCode;} } Step 4: 实现自定义AuthenticationProvider 创建一个自定义的AuthenticationProvider用于处理邮箱验证登录的认证逻辑。 Component public class EmailVerificationAuthenticationProvider implements AuthenticationProvider {Overridepublic Authentication authenticate(Authentication authentication) throws AuthenticationException {String email authentication.getName();String verificationCode authentication.getCredentials().toString();// 在此处编写您的自定义认证逻辑// 比如根据email和verificationCode验证用户信息if (authenticationIsValid) {ListGrantedAuthority authorities new ArrayList();authorities.add(new SimpleGrantedAuthority(ROLE_USER));CustomUserDetails userDetails new CustomUserDetails(email, true, authorities);return new UsernamePasswordAuthenticationToken(userDetails, null, authorities);} else {throw new AuthenticationServiceException(Authentication failed);}}Overridepublic boolean supports(Class? authentication) {return EmailVerificationToken.class.isAssignableFrom(authentication);} } Step 5: 实现自定义UserDetailsService 创建一个实现UserDetailsService接口的类用于根据邮箱查询用户信息。 Service public class CustomUserDetailsService implements UserDetailsService {private final UserRepository userRepository;Autowiredpublic CustomUserDetailsService(UserRepository userRepository) {this.userRepository userRepository;}Overridepublic UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {// 在此处实现根据邮箱查询用户信息的逻辑CustomUser user userRepository.findByEmail(email);if (user null) {throw new UsernameNotFoundException(User not found with email: email);}ListGrantedAuthority authorities new ArrayList();authorities.add(new SimpleGrantedAuthority(ROLE_USER));return new CustomUserDetails(user.getEmail(), user.isEnabled(), authorities);} } Step 6: 配置Spring Security 在Spring Security配置类中配置自定义过滤器、认证提供者和UserDetailsService。 Configuration EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter {private final EmailVerificationAuthenticationProvider emailVerificationAuthenticationProvider;private final CustomUserDetailsService customUserDetailsService;Autowiredpublic SecurityConfig(EmailVerificationAuthenticationProvider emailVerificationAuthenticationProvider, CustomUserDetailsService customUserDetailsService) {this.emailVerificationAuthenticationProvider emailVerificationAuthenticationProvider;this.customUserDetailsService customUserDetailsService;}Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.authenticationProvider(emailVerificationAuthenticationProvider);auth.userDetailsService(customUserDetailsService).passwordEncoder(passwordEncoder());}Overrideprotected void configure(HttpSecurity http) throws Exception {http.addFilterBefore(emailVerificationAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class).authorizeRequests().antMatchers(/login).permitAll().anyRequest().authenticated().and().formLogin().loginPage(/login).defaultSuccessUrl(/dashboard).and().logout().logoutUrl(/logout).logoutSuccessUrl(/login);}Beanpublic EmailVerificationAuthenticationFilter emailVerificationAuthenticationFilter() throws Exception {EmailVerificationAuthenticationFilter filter new EmailVerificationAuthenticationFilter();filter.setAuthenticationManager(authenticationManagerBean());return filter;}Beanpublic PasswordEncoder passwordEncoder() {return NoOpPasswordEncoder.getInstance(); // For simplicity, use NoOpPasswordEncoder} }
http://www.pierceye.com/news/905723/

相关文章:

  • 营销网站运营的基本环节郑州大学现代远程教育 《网页设计与网站建设》个人主页
  • 网站建设合同是谁开的wordpress装主题需要ftp
  • 新乡门户网站建设方案开启wordpress upwn
  • 烟台企业自助建站系统浙江网站seo
  • 北京婚纱摄影网站珠海网站建设怎样
  • 用什么软件来做网站域名网安备案
  • 能打开各种网站的浏览器推荐制作小网站
  • 山东公司网站开发好看的个人博客主页
  • 长沙优化网站获客软件最新网页游戏排行榜2021
  • 学校网站 建设网络系统管理与维护电大考试题
  • 中文域名转码网站琼筑网站是哪家做的
  • iis 网站访问权限毕设做网站的过程
  • 俱乐部网站模板有什么外贸网站
  • 补习吧 一家专门做家教的网站wordpress繁体字插件
  • 北京西站附近景点网络运营工作内容
  • 网站开发文档模板flask网站开发源码
  • 东莞清洁服务网站建设wordpress收费主题
  • 微网站如何做门户网站建设成都
  • 厦门网络推广建网站前端做图表的网站
  • 河南郑州网站设计公司手机自助建网站
  • 做网站的公司主要做shm有域名了网站怎么做
  • 竭诚网络网站建设价格贺兰网站建设
  • 部门网站管理建设工作汇报wordpress一键生成app
  • 帝国视频网站模板做网站的环境配置
  • 龙采科技做网站多少钱域名如何申请
  • 中国银行全球门户网站wordpress 分类下排序
  • 网站费用怎么做帐张北网站建设
  • 郑州专业网站制作泉州网络推广专员
  • 此网站可能有优化大师班级
  • 用html表格做的网站钦州建站哪家好