allora la situazione che mi ritrovo è questa:
la versione di glassfish che utilizzo è la : GlassFish Server Open Source Edition 3.1.2 (build 23)
ho configurato il realm JDBC utilizzando un datasuorce che già utilizzavo per cui sono certo del funzionamento delle connessioni JDBC.
ecco i file di configurazione:
web.xml
codice:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>LogoutServlet</servlet-name>
<servlet-class>security.LogoutServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LogoutServlet</servlet-name>
<url-pattern>/LogoutServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
</welcome-file-list>
<security-constraint>
<web-resource-collection>
<web-resource-name>Secure Pages</web-resource-name>
<url-pattern>/restricted/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>USERS</role-name>
<role-name>EmployeeGroup</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>developinjava</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/loginerror.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role>
<description/>
<role-name>EmployeeGroup</role-name>
</security-role>
<security-role>
<description/>
<role-name>USERS</role-name>
</security-role>
</web-app>
sun-web.xml
codice:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd">
<sun-web-app error-url="">
<context-root>/SecurityTest</context-root>
<security-role-mapping>
<role-name>EmployeeGroup</role-name>
<group-name>EmployeeGroup</group-name>
</security-role-mapping>
<class-loader delegate="true"/>
<jsp-config>
<property name="classdebuginfo" value="true">
<description>Enable debug info compilation in the generated servlet class</description>
</property>
<property name="mappedfile" value="true">
<description>Maintain a one-to-one correspondence between static content and the generated servlet class' java code</description>
</property>
</jsp-config>
<security-role-mapping>
<role-name>USERS</role-name>
<group-name>USERS</group-name>
</security-role-mapping>
</sun-web-app>
glassfish-web.wml
codice:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
<security-role-mapping>
<role-name>EmployeeGroup</role-name>
<group-name>EmployeeGroup</group-name>
<group-name>USERS</group-name>
</security-role-mapping>
<security-role-mapping>
<role-name>USERS</role-name>
<group-name>USERS</group-name>
<group-name>EmployeeGroup</group-name>
</security-role-mapping>
<class-loader delegate="true"/>
<jsp-config>
<property name="keepgenerated" value="true">
<description>Keep a copy of the generated servlet class' java code.</description>
</property>
</jsp-config>
</glassfish-web-app>
per ciò che riguarda i log l'unica cosa di anomalo che mi viene segnalata durante il deploy è questa:
codice:
Avvertenza: DPL8027: Ignore WEB-INF/sun-web.xml in archive /C:/Users/Melo90/Downloads/SecurityTest/build/web/, as GlassFish counterpart runtime xml WEB-INF/glassfish-web.xml is present in the same archive.
durante l'esecuzione se vado ad effettuare il login mi dà l'eccezione
codice:
Avvertenza: WEB9102: Web Login Failed: com.sun.enterprise.security.auth.login.common.LoginException: Login failed: Nessun LoginModules configurato per developinjava