Security 在不使用Java'登录的情况下验证用户凭据;s JAAS安全
我正在JBossWildfly下开发一个JSF2应用程序,它利用Java的JAAS安全机制 一切正常,我可以使用request.login(用户名、密码)机制登录 作为登录过程的一部分,我还需要授权设备(我使用cookie实现了该设备)。我试图实现的过程如下:Security 在不使用Java'登录的情况下验证用户凭据;s JAAS安全,security,jsf,jaas,Security,Jsf,Jaas,我正在JBossWildfly下开发一个JSF2应用程序,它利用Java的JAAS安全机制 一切正常,我可以使用request.login(用户名、密码)机制登录 作为登录过程的一部分,我还需要授权设备(我使用cookie实现了该设备)。我试图实现的过程如下: 验证用户名和密码(但不登录) 检查设备授权并重定向到授权过程页面 如果尚未授权) 登录(如果授权成功) 我不想让用户登录,除非他们得到授权,我也不想经历授权过程,除非用户名和密码是正确的 因此,我需要在用户没有实际登录的情况下验证凭据是否
Rich在JAAS/JEE中没有检查凭据的标准方法。但是,您可以登录并立即注销用户:
HttpServletRequest request = (HttpServletRequest) FacesContext
.getCurrentInstance().getExternalContext().getRequest();
try {
request.login(name, password);
request.logout();
isValid = true;
} catch (ServletException e) {
isValid = false;
}
ServletException
表示用户无效(或发生其他错误)
您还可以使用内部JBoss类
org.JBoss.security.AuthenticationManager
及其isValid(…)
方法。看见但这将您绑定到JBoss AS/Wildfly。您所说的“不登录”是什么意思?您希望避免的具体步骤是什么?显示日志表单/弹出窗口?检索其角色?我不想执行JAAS登录(通过调用request.login(用户名,密码))我想调用类似request.checkCredentials(用户名,密码)的东西,以获取用户名和密码是否有效的布尔响应,但不实际登录。但是checkCredentials()显然不存在——我正在JAAS中寻找类似的功能。