如何从 CAS 登录页面添加指向新页面的链接

Posted

技术标签:

【中文标题】如何从 CAS 登录页面添加指向新页面的链接【英文标题】:How to add a link to a new page from CAS login page 【发布时间】:2012-07-09 04:59:17 【问题描述】:

我是 JASIG CAS 的新手,我正在创建一些将从 CAS 登录页面链接的新页面(例如,密码重置、创建新帐户)。除了为WEB-INF/view/jsp/default/ui/ 中的新页面内容创建新的JSP 文件之外,我不确定从哪里开始执行此操作。我尝试从带有和不带有文件扩展名的 casLoginView.jsp 文件直接链接到新的 JSP 文件。我还尝试更改 web.xml 为我的新 JSP 添加一个新的 <servlet-mapping><url-pattern>。两种尝试都没有奏效:相反,指向新 JSP 的链接只是重新加载登录页面。提前感谢您的任何建议!

【问题讨论】:

【参考方案1】:

四处寻找正确的关键字后,看来我必须将新页面放在/WEB-INF 之外才能访问该页面。根据Java Servlet spec v2.4, page 70,Web 服务器无法提供/WEB-INF 下的任何内容。所以我把我的新页面移动到/WEB-INF之外的/webapp的根目录,所以现在我可以链接到新的JSP文件,包括它的文件扩展名(例如,https://localhost:8443/newPage.jsp)。

【讨论】:

【参考方案2】:

似乎新链接是安全资源,这是再次显示登录屏幕的原因。您必须在 securityContext.xml 文件中将新 jsps 的访问级别更改为 Ananymous 级别。

我也完成了同样的任务。 securityContext.xml

有我的部分
<sec:intercept-url pattern="/changePassword.html" access="IS_AUTHENTICATED_ANONYMOUSLY"/> 
<sec:intercept-url pattern="/resetPassword.html" access="IS_AUTHENTICATED_ANONYMOUSLY"/>

【讨论】:

酷,你有一个例子说明这个变化在 securityContext.xml 中的样子吗? 其实我在securityContext.html&lt;description&gt;看到如下:“这是Spring Security配置服务管理工具使用的配置文件。你不应该直接修改这个文件中的任何东西。配置选项应该都在 cas.properties 文件中。这是否意味着我应该在 cas.properties 中放置一些东西?【参考方案3】:

在上一个 CAS 服务器版本 (3.5.0) 中,可以使用处理密码重置的 LPPE 模块。你可能会对它感兴趣:https://issues.jasig.org/browse/CAS-948。 最好的祝福, 杰罗姆

【讨论】:

以上是关于如何从 CAS 登录页面添加指向新页面的链接的主要内容,如果未能解决你的问题,请参考以下文章

CAS 4.0.x 自定义登录页面

php cas单点登录如何获取用户信息而不跳转到登录页

CAS4.0.4 之自定义登录页实践

QQ集成登录生命周期

使用JQuery / Bootstrap / Ajax / ColdFusion 16登录页面?

创建 keycloak 自定义主题