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

北京个人制作网站网页原型设计模板

北京个人制作网站,网页原型设计模板,hao123上网导航,龙岩互联网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/597260/

相关文章:

  • 福州 网站定制设计稿定设计官方免费下载
  • 统计局网站建设情况南宁做网站优化的公司
  • 免费的软件网站建设北京建设厅网站查询
  • 没有公司做网站短网址短链接生成器
  • 利于seo优化的网站网站怎么上传到空间
  • 寿阳网站建设开发网站的硬件成本
  • 做网站的叫什么软件众筹网站开发
  • 鲜花网网站开发的目标河南郑州建设网站
  • 做网站上哪买空间帝国网站管理系统安装连接不上数据库
  • 做前端网站用什么工具网站备案后怎么做实名认证
  • 做兼职那个网站比较好重庆的seo服务公司
  • 网站建设流费用南通seo排名公司
  • 河北邢台移动网站建设单片机做网站
  • 佛山网站制作的公司做文库网站怎么赚钱吗
  • 博客网站 做淘宝客咸阳网站建设推广
  • 佛山手机网站建设优化做网站要多大的画布
  • 网站结构优化包括什么网站建设定制开发
  • 做装修的有那些网站wordpress获取用户位置
  • 找事做网站公司网站网页设计
  • 网站数据哪个网站可以做图片
  • 网站添加google地图阿里云服务器可以访问国外网站吗
  • 大连免费网站制作重庆哪些网站推广公司
  • 查建设工程规划许可证网站广州模板建站公司
  • 怎么做网站的超级链接有哪些做的很漂亮的网站
  • 做旅游网站挣钱吗wordpress 虎嗅网
  • 乐清网站制作的公司php 网站源代码
  • 外国知名个人网站衡阳做网站公司
  • 女人网站源码沈阳大型网站制作公司
  • 河南外贸网站建设中国建设银行密码重置网站
  • 搭建网站是什么专业资阳网络营销顾问招聘