首页 > 解决方案 > Apereo CAS 6.0.x 将登录表单字段传递给解析的属性

问题描述

我需要向 CAS 6.0.X 登录屏幕(语言选择器)添加一个字段,该字段不用于对用户进行身份验证,但在登录后我需要它。如何将添加到表单的该字段传递给数据在“主体”对象中传递给客户端应用程序。

标签: fieldcasprincipal

解决方案


最后,我已经达到了我所需要的。我们已经覆盖了 jdbc 支持模块以添加检查,并且我在其中放置了以下代码来帮助我检索请求的参数。

HttpServletRequest request = ((ServletRequestAttributes) 
RequestContextHolder.currentRequestAttributes()).getRequest();
String[] fields = fieldsToPrincipal.split(",");
for(String field : fields2Principal) 
{
    dbFields.put( field.trim() , request.getParameter( field.trim() ) );
}

fieldsToPrincipal 它是一串表单字段名称,我想通过“主体”映射属性发送应用程序。

现在在属性文件中,我有 2 个属性,我在其中报告字段的名称。告诉您将为主体检索哪些字段的默认属性和我的自定义属性,其中我指示哪些字段将来自表单

cas.authn.jdbc.query[0].principalAttributeList:USERID, USERNAME, LANGUAGE_SELECTED cas.custom.properties.jdbc.loginfields.to.principal=LANGUAGE_SELECTED


推荐阅读