JAAS错误:登录失败

时间:2014-01-27 20:09:55

标签: java security java-ee glassfish jaas

我正在构建一些宁静的Web服务并尝试使用JAAS来保护它们。

但是我收到以下错误:

 javax.servlet.ServletException: Login failed

我创建了一个具有以下属性的领域:

JAAS-Context: jdbcDigestRealm
DIGEST-Algorithm: SHA-512
Encoding: Hex
password encryption: none

我尝试使用HttpServletRequest登录:

request.login(email, password); //email = test@test.tld, password=<SHA512HEX('testPasswprd')>

这是StackTrace:

WARNING:   WEB9102: Web Login Failed: com.sun.enterprise.security.auth.login.common.LoginException: Login failed: null
SEVERE:   javax.servlet.ServletException: Login failed
at org.apache.catalina.authenticator.AuthenticatorBase.doLogin(AuthenticatorBase.java:959)
at org.apache.catalina.authenticator.AuthenticatorBase.login(AuthenticatorBase.java:939)
at org.apache.catalina.connector.Request.login(Request.java:2245)
at org.apache.catalina.connector.Request.login(Request.java:2224)
at org.apache.catalina.connector.RequestFacade.login(RequestFacade.java:1113)

你有什么想法吗?


编辑:

有时我在

处得到NullPointerException
request.login(email, password); //both variables and request are set.


WARNING:   StandardWrapperValve[de.AuthTest.core.ApplicationConfig]: Servlet.service() for servlet de.AuthTest.core.ApplicationConfig threw exception
java.lang.NullPointerException
at org.apache.catalina.connector.Request.login(Request.java:2229)
at org.apache.catalina.connector.Request.login(Request.java:2224)
at org.apache.catalina.connector.RequestFacade.login(RequestFacade.java:1113)

1 个答案:

答案 0 :(得分:0)

This tutorial在Glassfish 4.0中使用Java EE 7应用程序进行了测试:

  1. 展开安全节点。
  2. 展开Realms节点。
  3. 选择“文件”节点。
  4. 在“编辑域”页面上,单击“管理用户”。
  5. 在“文件用户”页面上,单击“新建”。
  6. 在“用户ID”字段中,键入用户ID。
  7. 在“组列表”字段中,键入TutorialUser。
  8. 在“新密码”和“确认新密码”字段中,键入密码。
  9. 单击“确定”。
  10. 然后在GlassFish Server上将Default Principal设置为Role Mapping:

    1. 从管理控制台中,展开“配置”节点,然后展开“server-config”节点。
    2. 选择安全节点。
    3. 选中“启用角色映射的默认主体”复选框。
    4. 点击保存