我正在构建一个在Glassfish v3.0.1上运行的JEE6应用程序。它是一个带有EJB的Web应用程序,部署为WAR(EJB 3.1)。
目前我正在尝试使用基于JDBC的安全领域来配置登录。 现在我不知道如何配置我的WAR应用程序以不使用默认的Glassfish安全领域(文件),而是使用我新创建的JDBC领域。 我知道如何在EAR应用程序中执行此操作,您可以使用以下内容将sun-application.xml与应用程序一起部署:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-application PUBLIC '-//Sun Microsystems, Inc.//DTD
Application Server 9.0 Java EE Application 5.0//EN'
'http://www.sun.com/software/appserver/dtds/sun-application_5_0-0.dtd'>
<sun-application>
<realm>jdbc</realm>
</sun-application>
但由于我有一个网络应用程序,我无法使用它,至少在部署应用程序时不会(因为我的应用程序未配置EAR部署而收到错误) 我可以在sun-web.xml中声明默认安全领域吗?我也找不到Glassfish-admin界面中的选项,或者我是否想念它?
答案 0 :(得分:4)
刚刚发现我必须在我的web.xml中添加以下行来更改领域:
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>jdbc</realm-name>
</login-config>
<security-role>
<description />
<role-name>STUDENT</role-name>
</security-role>
默认领域也可以在管理菜单中直接在“安全”部分设置(我怎么能监督......)