我有一个CAS 6.0.1,并且已经扩展了AbstractJdbcUsernamePasswordAuthenticationHandler以匹配我的数据库,并且一切正常。
我有一个新的要求,基本上是在我的登录页面中添加某种“部门”。我认为我有2个选项,或者将其添加为URL中的名称/值对,或者作为POST,除了j_username和j_password之外,还向表单添加一个隐藏字段。
但是我如何在AuthenticationHandler实现中获得该值?
答案 0 :(得分:1)
如果只想自由访问Request对象,则可以使用:
HttpServletRequest request = ((ServletRequestAttributes)
RequestContextHolder.currentRequestAttributes()).getRequest();
或使用CAS本身:
HttpServletRequest request =
HttpRequestUtils.getHttpServletRequestFromRequestAttributes();
这使您可以自由检查诸如department
之类的参数。如果您希望这些参数实际上绑定到所传递的credential
对象中,该对象包含用户名/密码等,那么您需要对Webflow进行大量修改以包括这些字段进入凭证对象,更改Webflow来处理绑定等。我认为以上内容暂时看来似乎更简单。