我需要在以下位置实现用户身份验证:
您能指导我使用哪些课程吗?我已经阅读了很多,现在我想我需要扩展AbstractPreAuthenticatedProcessingFilter来从URL中获取令牌并对其进行解密,但我不确定身份验证提供程序,以及是否需要userService实现?
谢谢!
编辑:
我一直在阅读更多,现在我不确定我是否需要PreAuthenticated类,因为它不像用户之前已经过身份验证,我仍然需要对他进行身份验证。认证实际上是看到解密有效并且尚未达到到期时间。你有什么建议?我开始编写自己的过滤器(扩展AbstractAuthenticationProcessingFilter),然后我看到我需要自己的AuthenticationToken实现,因为UsernamePasswordAuthentication不适合我,然后在提供程序中我找不到真正合适的东西。
任何帮助都会得到满足。我正在考虑扩展AbstractAuthenticationProcessingFilter但不使用身份验证管理器,因为它让我变得更复杂。你觉得怎么样?
答案 0 :(得分:0)
以下是您可以使用的方法:
1)扩展“GenericFilterBean”以创建您自己的安全过滤器,然后您可以将其用作“http”配置中的“自定义过滤器”。
2)可选:根据您的需要,您可以实现自己的'UserDetails',这非常简单。
3)可选:您可以使用“PreAuthenticatedAuthenticationToken”进行“身份验证”实施。
4)在过滤器中,您可以查找相应参数的存在,尝试解密信息。如果出现任何问题,请抛出Authentication Exception并在下一个描述的入口点处理它。
5)可选:如果成功,您可以将UserDetails对象包装在PreAuthenticatedAuthenticationToken中,并将其设置为安全上下文持有者。
6)实现“AuthenticationEntryPoint”并覆盖“开始”以清除securitycontext / session,从自定义过滤器处理AuthenticationException和/或重定向/分派到视图。使用此作为您的切入点。