Para el post de hoy vamos a ver como se asegura un Servicio Web con HTTP Auth, básica, en Weblogic. Para ello nos podemos basar en un proyecto anterior en el que creamos un WS muy básico: Hello World.
En el Security Realm > MyRealm tenemos que crear:
- Usuario: user/12345678
- Grupo: TutorialUser
- Añadir el usuario al grupo
En la consola de Weblogic, como vemos en la figura:
En el web.xml hay que añadir la configuración de seguridad pertinente (path, tipo básico,….):
<!-- SECURITY --> <security-constraint> <display-name>Regla01</display-name> <web-resource-collection> <web-resource-name>WSPOST</web-resource-name> <description /> <url-pattern>/*</url-pattern> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <description/> <role-name>TutorialUser</role-name> </auth-constraint> </security-constraint> <session-config> <session-timeout>5</session-timeout> </session-config> <login-config> <auth-method>BASIC</auth-method> <realm-name>myrealm</realm-name> </login-config> <security-role> <description /> <role-name>TutorialUser</role-name> </security-role> |
Y en el weblogic.xml mapeamos con el rol (si no hacemos esto no funcionará):
<wls:security-role-assignment> <wls:role-name>TutorialUser</wls:role-name> <wls:principal-name>TutorialUser</wls:principal-name> </wls:security-role-assignment> |
Podemos probarlo con SoapUI creando un nuevo proyecto de WS, con la dirección del WSDL (http://localhost:7001/wsc/HelloService?WSDL) y las credenciales creadas en WebLogic anteriormente: