Glassfish 4中的自定义域:未找到登录模块
我正在尝试为Glassfish 4创建一个自定义域和登录模块 我遵循了《玻璃鱼》第4页中概述的程序。4-6,“创建自定义领域” 我还遵循了中的步骤 我创建了一个loginModule,它扩展了com.sun.appserv.security.AppservPasswordLoginModule 我创建了一个扩展com.sun.appserv.security.AppservRealm的领域(SaltRealm) 我编译成一个jar,并将jar放在glassfish4\glassfish\domains\domain1\lib中 我将其添加到\glassfish4\glassfish\domains\domain1\config\login.conf:Glassfish 4中的自定义域:未找到登录模块,glassfish,jaas,glassfish-4,java-ee-7,Glassfish,Jaas,Glassfish 4,Java Ee 7,我正在尝试为Glassfish 4创建一个自定义域和登录模块 我遵循了《玻璃鱼》第4页中概述的程序。4-6,“创建自定义领域” 我还遵循了中的步骤 我创建了一个loginModule,它扩展了com.sun.appserv.security.AppservPasswordLoginModule 我创建了一个扩展com.sun.appserv.security.AppservRealm的领域(SaltRealm) 我编译成一个jar,并将jar放在glassfish4\glassfish\doma
saltRealm {
com.example.LoginModule required;
};
我添加到\glassfish4\glassfish\domains\domain1\config\domain.xml:
<auth-realm classname="com.example.SaltRealm" name="saltRealm">
<property name="jaas-context" value="saltRealm"></property>
</auth-realm>
我在web.xml中添加了一个部分来使用saltRealm
<login-config>
<auth-method>FORM</auth-method>
<realm-name>saltRealm</realm-name>
<form-login-config>
<form-login-page>/login.xhtml</form-login-page>
<form-error-page>/error.xhtml</form-error-page>
</form-login-config>
</login-config>
形式
盐田
/login.xhtml
/error.xhtml
看起来找到了saltRealm类(我可以看出构造函数正在运行)
但是,似乎找不到登录模块。我得到这个警告:
WEB9102:Web登录失败:com.sun.enterprise.security.auth.Login.common.Login异常:登录失败:无效的空输入:名称
我不确定我在这里遗漏了什么。您发布的片段似乎是正确的。要调试您的问题,您可以在调试模式下启动Glassfish,并在登录模块中设置断点 作为替代方案,在glassfish控制台中启用领域的详细登录:
Configurations - server-config - Logger Settings - Log Levels - javax.enterprise.system.core.security
我也有类似的问题,遵循非常相似的指示,直到一些研究发现了一个缺失的部分 您应该确保您正在覆盖IASREARM中的getJAASContext()。这不是一个抽象方法,但您需要重写它,因为返回值用于将领域映射到登录模块。因此getJAASContext()应该返回您在login.conf中使用的领域的名称 在您的情况下,这将是:
@Override
public String getJAASContext(){
return "saltRealm";
}