首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在cookies中使用Security 3

在cookies中使用Security 3
EN

Stack Overflow用户
提问于 2011-06-03 21:03:09
回答 2查看 5.8K关注 0票数 5

我有一个用Java构建的应用程序,它需要授权。但是,身份验证部分是由另一个/单独的应用程序处理的(不是在Java中)。用户登录到身份验证应用程序,然后该应用程序设置一个cookie。如果授权用户访问Java应用程序,则授权应用程序将它们重定向到Java应用程序的URL。

在允许访问Java应用程序之前,我希望使用Security来验证/检查cookie。做这件事最好的方法是什么?Java应用程序应该做以下工作:

  1. 检查cookie是否存在
  2. 如果存在cookie,则使用db验证cookie值。如果没有,请将它们发送到其他应用程序登录。
  3. 如果cookie有效,则显示应用程序。如果没有,请将用户发送到“身份验证”应用程序。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-08 07:58:07

您可以通过创建自己的UsernamePasswordAuthenticationFilter来做到这一点。在过滤器内,您可以检查您需要的cookie。您应该只需要重写attemptAuthentication()方法。您有请求和响应对象,所以检查cookie应该很容易。

您还需要实现一个UserDetailsService来检查数据库中的用户凭据。

  • 将帮助您使用自定义筛选器。
  • 是如何编写UserDetailsService的。

您的命名空间配置应该如下所示:

代码语言:javascript
复制
<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>

票数 4
EN

Stack Overflow用户

发布于 2011-06-04 00:08:48

这个场景听起来像SAML或OpenID。如果是这样的话,在Security中应该已经有这个插件了。如果这是一个自定义的auth方案,也许您可以做一些类似于插件所做的事情,因为流是相似的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6232683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档