14.7. 在 Servlet 里使用基于角色的安全性
要在 servlet 里添加安全性,你可以将每个 servlet 映射到 URL 模式,并在需要设置安全性的 URL 模式上创建安全性约束。这些安全性约束限制对 URL 的访问的角色。其验证和授权是由 WAR 的
jboss-web.xml
里指定的安全域处理的。
前提条件
在你在 servlet 里使用基于角色的安全性之前,用来验证和授权访问的安全域需要在 JBoss EAP 容器里进行配置。
过程 14.2. 在 Servlet 里添加基于角色的安全性
在 servlet 和 URL 模式间添加映射。
使用web.xml
里的<servlet-mapping>
元素来映射单独的 servlet 和 URL 模式。下面的例子映射名为DisplayOpResult
的 servlet 到 URL 模式/DisplayOpResult
。<servlet-mapping> <servlet-name>DisplayOpResult</servlet-name> <url-pattern>/DisplayOpResult</url-pattern> </servlet-mapping>
添加安全约束到 URL 模式。
要映射 URL 模式到安全约束,可以使用<security-constraint>
。下面的例子约束了具有角色eap_admin
的 principal 对 URL 模式/DisplayOpResult
的访问。这个角色需要出现在安全域里。<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-role> <role-name>eap_admin</role-name> </security-role> </security-constraint>
在 WAR 的
jboss-web.xml
里指定安全域添加安全域到 WAR 的jboss-web.xml
以连接 servlet 到配置好的安全域,它知道如何根据安区性约束验证和授权 principal。下面的例子使用名为acme_domain
的安全域。<jboss-web> ... <security-domain>acme_domain</security-domain> ... </jboss-web>