[英]login with param url spring security
我在使用 Spring Security 时遇到了困难。 我需要使用 URL 中的参数自动登录。
例子:
我使用用户名和密码参数链接/collectsys/mainlogin.zul?username=ADMIN&password=12345678 访问 URL。 访问的时候希望它自动登录,比如填写用户名和密码,点击登录按钮。
由于我使用的是 Spring Security,我无法在登录按钮上找到操作。 我应该在 Spring 文档中寻找什么? 我正在使用 Spring Security 5.5.3 版。
登录时需要生成令牌。 然后,用户的客户端使用此令牌与受 Spring Security 保护的 REST API 进行交互。
因此,登录方法需要向客户端返回一个访问令牌,然后将其保存在客户端的会话或 cookie 中,以便在调用后端时重用。
一种常用的解决方案是 JWT,您可以在此处找到一个非常全面的指南:
https://www.bezkoder.com/spring-boot-jwt-authentication/
如果您确实无法更改应用程序的大部分内容,那么您应该查看使您能够过滤 Spring Boot 应用程序的请求的OncePerRequestFilter
public class AuthenticationFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(
HttpServletRequest request,
HttpServletResponse response,
FilterChain filterChain) throws
ServletException, IOException {
String username = request.getParameter("username");
String pw = request.getParameter("password");
User user = database.getUser(username);
if(user.getPw().equals(pw))
logger.info("Successfully authenticated user " + userName);
else throw new SomeException();
filterChain.doFilter(request, response);
}
}
这种方式,无论哪个请求到达您的应用程序,都会在到达控制器逻辑本身之前通过此过滤器一次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.