当前位置: 首页 > 知识库问答 >
问题:

在不使用Java的JAAS安全性登录的情况下验证用户凭据

裴姚石
2023-03-14

我正在开发一个在JBOSS Wildfly下运行的JSF2应用程序,它利用了Java的JAAS安全机制。

一切都按预期工作,我可以使用 request.login(用户名,密码)机制登录。

我还需要授权设备(我已使用cookie实现)作为登录过程的一部分。我试图实施的过程如下:

  1. 验证用户名和密码(但不登录)
  2. 检查设备授权并重定向到授权过程页面(如果尚未授权)。
  3. 登录(如果授权成功)

除非用户被授权,否则我不想让他们登录,除非用户名和密码正确,否则我不想经历授权过程。

因此,我需要验证凭据是否正确,而无需实际登录用户。我可以通过数据库查询手动执行此操作,但我想知道是否有办法通过JAAS执行此操作。

有什么想法吗?有钱的

共有1个答案

邢鸿博
2023-03-14

在JAAS/JEE中没有检查凭据的标准方法。但是,您可以登录并立即注销用户:

HttpServletRequest request = (HttpServletRequest) FacesContext
        .getCurrentInstance().getExternalContext().getRequest();
try {
    request.login(name, password);
    request.logout();
    isValid = true;
} catch (ServletException e) {
    isValid = false;
}

< code>ServletException表示用户无效(或发生了其他错误)。

您还可以使用内部JBoss类org.jboss.security.AuthenticationManager及其isValid(…)方法。参见示例。但是这将您绑定到JBoss AS/Wildfly。

 类似资料:
  • 这样做的原因是我想要保护我的API或者“锁定”它只对我指定的客户机。有时我会有一个没有用户登录的应用程序。我不想纠缠我的用户现在登录只是为了我的API是安全的。或者其他时候,我只想像在一个网站上那样管理自己的用户,而不使用Google+、Facebook,或者其他什么登录认证。 首先,让我介绍一下如何使用文档中指定的Google Accounts登录名,通过云endpointAPI验证Androi

  • 我目前正在使用React在一个网站上工作,我希望能够有用户登录。现在,我的策略是在提交时将表单数据发送到服务器(express),如果信息与我的数据库中的用户匹配,服务器将发回一个签名的JWT,其中没有敏感信息(只有用户名)。 一旦客户机接收到JWT,我就将它添加到localStorage中,并将它的解码数据添加到redux存储中。我计划让我的redux存储当前登录的用户。

  • 问题内容: 以下App Engine处理程序在可以获取令牌的范围内起作用: 当连接到模板时,它会从Facebook获得令牌响应并愉快地显示它。但是,最好不要将用户重定向到example.com/?state=SOME_UNIQUE_VALUE&code=AQB0iYpAf8nMmX5blahblah# = 来完成登录。 有没有一种方法可以使用client.Get等来访问授权URL,遵循重​​定向,

  • 本文向大家介绍Java用户登录验证代码,包括了Java用户登录验证代码的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,关键代码如下所示: 以上所述是小编给大家介绍的Java用户登录验证代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!

  • 我开发了一个服务(service),它自动化了用户可以在另一个第三方站点(第三方站点)上执行的某些操作。 “我的服务”为用户提供以下功能: > 用户在服务中注册 用户向服务提供其第三方站点用户名/密码 该服务使用该凭据代表用户登录到第三方站点 该服务将第三方站点发布的cookie存储在其数据库中 从现在起,该服务开始使用以前存储的cookie(第三方站点的用户名/密码不会保存在任何位置)代表用户定

  • 我想使用Cognito对我的用户进行身份验证,这是一个内置于Flutter和Dart的应用程序。 不幸的是,Dart不存在本机AWS SDK,我不能在颤振中使用JS互操作。 我已经研究了OAuth2流,但这需要将我的用户重定向到登录表单,这对移动应用程序来说不是很好。 有哪些替代方案?