问题标签 [spring-security-cas]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-security - 使用 Spring Security CAS 扩展实现 SSO 时的问题
我正在尝试使用 Spring Security CAS 扩展对我的应用程序上的用户进行身份验证。之前只有一个应用程序,因此不需要 SSO。现在还有一个应用程序,我希望用户登录一次并使用所有应用程序,而无需再次通过身份验证(基本上是 SSO)。我有一堆这样的问题-
- 我拥有的所有应用程序都是单个 tomcat 容器的一部分,将通过同一个域提供服务。我检查了 Tomcat SSO Valve,但它似乎需要基于容器的身份验证,我不确定是否要将其用于身份验证/授权。我正在使用基于弹簧安全表单的登录。我真的需要像 Jasig CAS 这样的东西还是会有点矫枉过正?
Spring Security 和 CAS deployerContext 配置 - http://pastie.org/8408976和http://pastie.org/8408967
我使用 Jasig 服务器设置了 Spring Security CAS,SSO似乎可以正常工作,因为登录到任何应用程序都足以访问其他应用程序。我已经修改了 deployerConfigContext.xml 以将 inMemoryServiceRegistryDaoImpl 替换为 JPA / Hibernate 之一。但我总是在我的日志中看到以下行。尽管已经在我的数据库中创建了表(SERVICETICKET 等)。当我尝试登录和注销时,这些表总是空的。
2013-10-17 16:41:18,882 INFO [org.jasig.cas.services.DefaultServicesManagerImpl] - <Loaded 0 services.>
当我尝试访问 URL
https://localhost/cas/services
时,它返回错误“此网站有重定向循环”。我看到下面的文章在日志中重复了 n 次(带有不同的票号)- http://pastie.org/8408940我没有任何 REST 或无状态服务访问经过身份验证的资源,我是否需要代理票证?
注意:我使用的是 Spring Security 3.1.4.RELEASE 和 CAS server 3.5.2 版本。任何指针都会有所帮助。
spring-security - 为 CasAuthenticationFilter 设置 Pre auth 过滤器
我为几个应用程序设置了 Spring Jasig CAS SSO。这使用CasAuthenticationFilter
. 所以我设置了这样的网络应用程序 -
Cas Server (Cas 3.5.2) - Cas.war
,App1 - App1.war
和App2 - App2.war
. 应用程序使用 Spring 3.2.3 和 Spring Security 3.1.4.RELEASE。
Spring Security Config
: http: //pastie.org/private/qxcx1h8i9ys0w3lmwegiw
使用此设置似乎可以正常工作。现在,当我在 Cas 服务器上启用 OAuth(不是通过 Spring Cas)时,我无法将该身份验证与我设置的通常基于表单的身份验证集成。Facebook OAuth 集成似乎工作正常,因为我可以看到在日志中成功检索到 Facebook 个人资料属性。问题是发布 facebook 登录后,CasAuthenticationFilter 尝试使用类似的基于表单的登录机制对用户“FacebookProfile#XYZXYZ”进行身份验证,显然它没有在用户的数据库表中找到该用户。我的猜测是我需要编写一个自定义过滤器,该过滤器AbstractPreAuthenticatedProcessingFilter
在之前扩展并带有位置PRE_AUTH_FILTER
(检查上面的粘贴配置)并且应该以某种方式设置Authentication
正确,所以CasAuthenticationFilter
应该知道用户已经登录。
这是根据CasAuthenticationFilter
日志验证的 URL -/j_spring_cas_security_proxyreceptor?pgtIou=PGTIOU-1-pR9r9LVJvB5EkezbMJHN-talenteye.in&pgtId=TGT-2-QXvAHIRciBNR9HU5FOvpOaHcJaBj5OJTUPPz5ZwA7yK1xH54iL-myorg.in
requiresAuthentication
的实现CasAuthenticationFilter
看起来像这样:
日志说 -
我对如何使这项工作一起工作感到困惑。我想知道我是不是把事情复杂化了。任何指示都会非常有帮助,因为我已经在这上面浪费了几天时间。
spring-security - 自定义 Spring CAS j_spring_cas_security_check URL
我正在使用 CAS 3.5.2 和 Spring CAS 扩展。我正在尝试将j_spring_cas_security_check
(以及用于注销的类似)URL更改为security_check
. 我在Spring 文档中读到
我认为这只是一个虚拟 URL,可以通过在我的 Spring Security 配置中将其设置为 bean 的service
属性值来更改它org.springframework.security.cas.ServiceProperties
,但是在更改之后我的 CASSSO
开始中断。我在客户端或服务器端没有看到任何异常。
更改此默认路径时是否缺少任何明显的步骤?
session-timeout - 带有 CAS 的 Spring Security - SessionTimeout 配置
我已经用 CAS 实现了 Spring Security,并试图配置会话超时。我看到设置值ticketExpirationPolicies.xml
将对此有所帮助。我尝试过配置值,但会话永远不会过期。我也尝试过设置会话过期web.xml
。这是我的spring-application-context
配置:
我在 web.xml 中有单点注销配置:
spring-security - 带有 CAS 和表单登录的 Spring Security
我正在编写一个应用程序,该应用程序需要对员工使用 CAS 身份验证,并为客户使用用户名/密码表单登录(根据数据库表进行验证)。
这个想法是首页会有一个链接,可以将它们发送给员工的 CAS(“如果您是员工,请单击此处”),并且在该用户名和密码框下方供非员工使用。
我有这两个在单独的测试应用程序中工作 - 基于 Spring Security 中的示例应用程序 - 但不清楚如何将两个 AuthenticationProviders 合并为一个。
当前配置 - 主要来自添加了表单配置的 CAS 配置:
这给出了错误消息:
如何将两个过滤器都放入链中?还是我需要编写自己的过滤器(不知何故?)知道正在选择哪种方法,然后委托相关的特定过滤器?
我是 Spring Security 的新手,所以有没有更好的方法来完全做到这一点?
谢谢!
grails - java.lang.NullPointerException with spring security cas
我已经使用 spring-security-core 和 spring-security-ldap 成功设置了我的应用程序。但是,当我安装 spring-security-cas 插件以连接到 cas 服务器时,我一直在循环中不断收到 java.lang.NullPointerException,而错误不断重复。
我在 Config.groovy 中有以下内容:
这是我得到的错误:
提前感谢您的帮助
grails - Spring-security-cas 插件单点注销不起作用
我对 grails 很陌生,我正在开发一个带有 Spring-Security-Core 和 Spring-Security-CAS 插件的应用程序。
单点登录按预期工作,但我在单点注销时遇到了麻烦。
我有两个应用程序,当我登录 cas 或任何一个应用程序时,我可以毫无问题地访问这两个应用程序。但是,当我尝试使用 app1/logout 或 app2/logout 注销时,只有 cas 和调用 /logout 的应用程序会话关闭,我仍然可以通过其他应用程序导航。
示例:通过 cas 登录记录 app1 通过 cas 票证验证记录 app2 从 app1 注销 -> app1 和 cas 会话已关闭,但 app2 仍处于登录状态(应在此处注销)
任何人都知道如何解决它?
更新
当我登录我的两个应用程序并尝试从一个应用程序中注销时,我可以在 localhost_access_log.txt 中看到这些帖子调用:
我相信从我的两个应用程序中注销就足够了,但 app2 没有注销,只有 app1 (app)
欢迎任何建议=D
谢谢
grails - Grails-SpringSec 依赖于不在 Maven Central 中的 JAR?
我正在尝试将 Grails 应用程序配置为使用最新的稳定SpringSec-CAS 插件,但我终生无法找到 SpringSec 和我应该使用的插件的正确版本。
我在 Grails 2.3.6 上。我应该包括什么BuildConfig.groovy
来获得最新的稳定版本?我有:
当我指定 SpringSec 2.0-RC2 和 SpringSec-CAS 2.0-RC1 时,运行时出现以下错误grails run-app
:
我认为我的存储库设置不正确...?如何修改我BuildConfig.groovy
的以从 Maven Central 中提取这些部门?
运行 Grails 依赖报告:
仍然不能 100% 确定问题是什么。
grails - 成功登录后,Grails Spring Security 未重定向到保存的请求
我有一个Grails 2.2.5应用程序,它使用Grails Spring Security 1.2.7.3、Spring Security LDAP 1.0.6和Spring Security CAS 1.0.5插件进行身份验证/授权。登录、角色、单点登录都可以正常工作。但由于某种原因,应用在通过 CAS 登录后不会重定向到请求的 URL。我没有将配置设置为始终使用默认目标。
我打开了日志记录,它报告它正在保存请求:
这实际上是正确的 URL。但是,登录后,日志记录会报告以下内容:
和...
然后应用程序继续重定向到/index.gsp
,这是不正确的(它应该转到/bookstoreAdmin
.
以下是我的配置设置,然后是完整的日志记录:
弹簧安全配置:
记录:
spring - 添加到 jasig cas 3.5.2 的安全控制器
我的任务是向我们的 CAS 服务器添加密码更改功能,但对 CAS 和 Spring 来说都是新手。我已经成功地将一个多动作控制器添加到叠加层,但我不知道如何保护视图并要求用户在查看页面之前进行身份验证。到目前为止,这是我添加到 CAS 覆盖项目中的内容:
web.xml
cas-servlet.xml
我相信我在 securityContext.xml 中缺少映射,但我在那里尝试的所有内容都以无休止的重定向循环结束,或者在所有情况下都只是访问被拒绝的消息。
任何建议将不胜感激。
谢谢