Crear un autenticador HTTP personalizado para Tomcat 9

Necesito integrar IBM Security Access Manger con Tomcat 9 para autenticar a los usuarios. Tengo un Webseal (unión) configurado correctamente para la parte SAM de IBM. Toma las credenciales del usuario, autentica de nuevo el servidor SAM, y luego, si vuelve a dirigir con éxito a Tomcat al pasar las cabeceras iv-user, iv-groupy iv-creds. Ahora necesito escribir una válvula Tomcat personalizada para implementar la autenticación y permitir el acceso a aplicaciones basadas en el grupo de usuarios. ¿Cuál sería la mejor manera de hacer esto?

Mi idea actual es extender el org.apache.catalina.valves.AuthenticatorBasepara que pueda usar la siguiente configuración en web.xmlmi aplicación:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Application</web-resource-name>
        <url-pattern>/*</url-pattern>
        <http-method>POST</http-method>
        <http-method>GET</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>MyRoleName</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
    <auth-method>BASIC</auth-method>
</login-config>

Los encabezados de Webseal pueden analizarse y usarse para generar ay org.apache.catalina.realm.GenericPrincipalluego usarse para autenticarse en un rol agregado al reino dado (o escrito tomcat-users.xml).

Estoy un poco inseguro sobre cómo implementar realmente esta autenticación, por lo que cualquier ayuda, sin importar cuán básica sea, sería muy apreciada.

Respuesta 1

Estoy tratando de leer los argumentos pasados ​​a un archivo jar, pero mi duda es: si hay alguna manera de que podamos leer el constructor de las variables de la clase primaria directamente de la subclase, por ejemplo ...

Tengo una aplicación Java que se cierra correctamente cuando uso CTRL-C, la aplicación Java guarda todos los datos antes del apagado. Ahora estoy tratando de cerrar esta aplicación Java desde mi aplicación de consola C # ...

Al probar mi código, he encontrado algo que no puedo interpretar. Al examinar la cobertura del código con eclemma, he encontrado un encabezado de un bucle for que se resalta en amarillo con el mensaje que dice "1 de ...

Posible duplicado: SQL Server: compruebe si existe una tabla Estoy trabajando con Java y MS SQL Server 2008 y quiero crear una tabla solo después de comprobar si aún no existe en la base de datos. ...