我有一个用Java构建的应用程序,它需要授权。但是,身份验证部分是由另一个/单独的应用程序处理的(不是在Java中)。用户登录到身份验证应用程序,然后该应用程序设置一个cookie。如果授权用户访问Java应用程序,则授权应用程序将它们重定向到Java应用程序的URL。
在允许访问Java应用程序之前,我希望使用Security来验证/检查cookie。做这件事最好的方法是什么?Java应用程序应该做以下工作:
有什么想法吗?
发布于 2011-06-08 07:58:07
您可以通过创建自己的UsernamePasswordAuthenticationFilter来做到这一点。在过滤器内,您可以检查您需要的cookie。您应该只需要重写attemptAuthentication()方法。您有请求和响应对象,所以检查cookie应该很容易。
您还需要实现一个UserDetailsService来检查数据库中的用户凭据。
UserDetailsService的。您的命名空间配置应该如下所示:
<http use-expressions="true" auto-config="false" entry-point-ref="yourEntryPointInApp1">
<custom-filter position="FORM_LOGIN_FILTER" ref="myFilter" />
</http>
<authentication-manager>
<authentication-provider user-service-ref="myDetailsService" />
</authentication-manager>此外,如果您决定实现过滤器,请注意不要使用<formLogin>。
发布于 2011-06-04 00:08:48
这个场景听起来像SAML或OpenID。如果是这样的话,在Security中应该已经有这个插件了。如果这是一个自定义的auth方案,也许您可以做一些类似于插件所做的事情,因为流是相似的。
https://stackoverflow.com/questions/6232683
复制相似问题