gpt4 book ai didi

java - 如何添加有关用户未通过身份验证的原因的详细信息?

转载 作者:太空宇宙 更新时间:2023-11-04 13:28:22 24 4
gpt4 key购买 nike

我们为用户添加了属性 isBlocked

设置以下属性后,用户无法登录我们的网站。

我们想要呈现错误消息“您的帐户被暂时阻止...”

但我不知道如何将此消息传递给 loginFailed Controller 方法。

我有以下 spring-security 配置:

public class XXXSecurityServiceImpl implements UserDetailsService {

@Autowired
private TerminalAdminDao terminalAdminDao;

@Override
public UserDetails loadUserByUsername(String adminName) throws UsernameNotFoundException,
DataAccessException {
TerminalAdmin admin = terminalAdminDao.findAdminByEmail(adminName);
UserDetails userDetails = null;
if (admin != null) {
Set<SimpleGrantedAuthority> authorities = new HashSet<SimpleGrantedAuthority>();
for (AdminRole adminRole : admin.getAdminRoles()) {
authorities.add(new SimpleGrantedAuthority(adminRole.getRole()));
}
userDetails = new User(admin.getEmail(), admin.getPassword(), true, true, true, !admin.isBlocked(),
authorities);
}
return userDetails;
}

管理员控制方法失败:

@RequestMapping(value = "/loginAdminFailed", method = RequestMethod.GET)
public String loginError(HttpSession session) {
session.setAttribute("login_error", "true");
return "admin/login";
}

如何在 Controller 中了解用户被阻止?

最佳答案

基本上,您需要注册自定义身份验证提供程序和自定义身份验证失败处理程序来处理身份验证异常。

检查这个SO问题。

关于java - 如何添加有关用户未通过身份验证的原因的详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32440325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com