17.5. Uso da Segurança baseada na Função nos Servlets
Para adicionar a segurança a um servlet, você precisa mapear cada servlet a um padrão de URL e criar restrições de segurança nos padrões do URL que precisam ser protegidos. As restrições de segurança limitam o acesso aos URLs e funções. A autenticação e autorização são manuseadas pelo security domain especificados no
jboss-web.xml
do WAR.
Pré-requisitos
Antes de você usar a segurança baseada na função num servlet, o security domain usado para autenticar e autorizar o acesso precisa ser configurado no contêiner do JBoss EAP 6.
Procedimento 17.2. Adição da Segurança baseada na Função aos Servlets
Adição dos mapeamentos entre os padrões servlets e URL.
Use os elementos<servlet-mapping>
noweb.xml
para mapear os servlets individuais aos padrões URL. A seguinte amostra mapeia o servlet chamadoDisplayOpResult
ao/DisplayOpResult
default de URL.<servlet-mapping> <servlet-name>DisplayOpResult</servlet-name> <url-pattern>/DisplayOpResult</url-pattern> </servlet-mapping>
Adição das restrições de segurança nos padrões URL.
Para mapear o default URL a uma restrição de segurança, use o<security-constraint>
. A seguinte amostra de acesso às restrições a partir do/DisplayOpResult
default de URL a ser acessado pelos principals com oeap_admin
da função. A função necessita estar presente no security domain.<security-constraint> <display-name>Restrict access to role eap_admin</display-name> <web-resource-collection> <web-resource-name>Restrict access to role eap_admin</web-resource-name> <url-pattern>/DisplayOpResult/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>eap_admin</role-name> </auth-constraint> </security-constraint> <security-role> <role-name>eap_admin</role-name> </security-role> <login-config> <auth-method>BASIC</auth-method> </login-config>
Você precisa especificar o método de autenticação, que pode ser qualquer um dos seguintes:BASIC, FORM, DIGEST, CLIENT-CERT, SPNEGO.
Essa amostra usa a autenticaçãoBASIC
.Especificação do security domain no
jboss-web.xml
do WAR.Adicione o security domain aojboss-web.xml
do WAR com o objetivo de conectar os servlets ao security domain configurado, que sabe como autenticar e autorizar os principals em referências de segurança. A seguinte amostra usa o security domain chamadoacme_domain
.<jboss-web> ... <security-domain>acme_domain</security-domain> ... </jboss-web>
Exemplo 17.1. Amostra web.xml
com a Segurança configurada baseada na função
<web-app 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_3_0.xsd" version="3.0"> <display-name>Use Role-Based Security In Servlets</display-name> <welcome-file-list> <welcome-file>/index.jsp</welcome-file> </welcome-file-list> <servlet-mapping> <servlet-name>DisplayOpResult</servlet-name> <url-pattern>/DisplayOpResult</url-pattern> </servlet-mapping> <security-constraint> <display-name>Restrict access to role eap_admin</display-name> <web-resource-collection> <web-resource-name>Restrict access to role eap_admin</web-resource-name> <url-pattern>/DisplayOpResult/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>eap_admin</role-name> </auth-constraint> </security-constraint> <security-role> <role-name>eap_admin</role-name> </security-role> <login-config> <auth-method>BASIC</auth-method> </login-config> </web-app>