在 AbstractJdbcUsernamePasswordAuthenticationHandler 中获取 Request 对象
Get Request object in AbstractJdbcUsernamePasswordAuthenticationHandler
我有一个 CAS 6.0.1,我扩展了 AbstractJdbcUsernamePasswordAuthenticationHandler 以匹配我的数据库,一切正常。
我有一个新要求,基本上是在我的登录页面中添加某种 "department"。我认为我有 2 个选项,要么将其添加为 URL 中的 name/value 对,要么,因为它是 POST,除了j_username 和 j_password。
但是我如何在我的 AuthenticationHandler 实现中获得该值?
如果您只想自由访问 Request 对象,您可以使用:
HttpServletRequest request = ((ServletRequestAttributes)
RequestContextHolder.currentRequestAttributes()).getRequest();
或使用 CAS 本身:
HttpServletRequest request =
HttpRequestUtils.getHttpServletRequestFromRequestAttributes();
这使您可以自由检查 department
等参数。如果您希望这些参数实际上 绑定 到传递的 credential
对象,其中包含 username/password 等,那么您需要修改 webflow 而不是大量将这些字段包含到凭据对象中,更改 webflow 以处理绑定等。我认为暂时以上可能看起来更简单。
我有一个 CAS 6.0.1,我扩展了 AbstractJdbcUsernamePasswordAuthenticationHandler 以匹配我的数据库,一切正常。
我有一个新要求,基本上是在我的登录页面中添加某种 "department"。我认为我有 2 个选项,要么将其添加为 URL 中的 name/value 对,要么,因为它是 POST,除了j_username 和 j_password。
但是我如何在我的 AuthenticationHandler 实现中获得该值?
如果您只想自由访问 Request 对象,您可以使用:
HttpServletRequest request = ((ServletRequestAttributes)
RequestContextHolder.currentRequestAttributes()).getRequest();
或使用 CAS 本身:
HttpServletRequest request =
HttpRequestUtils.getHttpServletRequestFromRequestAttributes();
这使您可以自由检查 department
等参数。如果您希望这些参数实际上 绑定 到传递的 credential
对象,其中包含 username/password 等,那么您需要修改 webflow 而不是大量将这些字段包含到凭据对象中,更改 webflow 以处理绑定等。我认为暂时以上可能看起来更简单。