Java EE 6 Seguridad programática, glassfish y JDBC realm

Estoy explorando formas puras de Java EE para hacer seguridad programática, especialmente usuarios de inicio de sesión, basados ​​en el reino jdbc de mi servidor glassfish.

Así que básicamente, en mi servlet de inicio de sesión que estoy haciendo

String username = request.getParameter("username");
String password = request.getParameter("password");

try {
    request.login(username, password);
....

Sin hacer nada en mi web.xml, se usa el reino predeterminado (archivo). No quiero eso, quiero usar mi jdbcRealm llamado jdbcsecurerealm.

Así que estoy agregando lo siguiente a mi web.xml

<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>jdbcsecurerealm</realm-name>
</login-config>

Tenga en cuenta que no agrego ninguna configuración de inicio de sesión de formulario para definir la página de inicio de sesión de formulario y la página de error de formulario.

Entonces si defino restricciones de seguridad como

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Admin Pages</web-resource-name>
        <description></description>
        <url-pattern>/admin/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>administrator</role-name>
    </auth-constraint>
</security-constraint>

bueno ... funciona! El request.login comprueba mi jdbcRealm y si intento acceder a las páginas seguras sin iniciar sesión, obtengo un buen 403.

Pero parece que estoy mezclando la seguridad declarativa y la seguridad programática, porque siento que no debería declarar nada dentro de web.xml, sino más bien usar request.isUserInRole.

Pregunta:

¿Estoy golpeando un comportamiento específico de glassfish, o está permitido usar seguridad programática (request.login) con un reino jdbc definido dentro de web.xml sin form-login-config?

Actualizar Acabo de ver que existe la posibilidad de especificar un reino dentro de glassfish-application.xml. ¿Es un mejor enfoque construir un oído en lugar de una guerra para especificar el reino?

Respuestas a la pregunta(2)

Su respuesta a la pregunta