快速业务通道

安全注释和授权在GlassFish和Java EE 5 SDK中的应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
dex.jsp 页面的 GET 和 POST 方法,只允许 employee 角色访问它们,则需要使用以下 web.xml 配置来实现:

...    <web-app>      <servlet>        ...      </servlet>      <security-constraint>        <web-resource-collection>          <web-resource-name>MySecureResource</web-resource-name>          <url-pattern>/index.jsp</url-pattern>          <http-method>GET</http-method>          <http-method>POST</http-method>        </web-resource-collection>        <auth-constraint>          <role-name>employee<role-name>        </auth-constraint>        <user-data-constraint>          <transport-guarantee>NONE</transport-guarantee>        </user-data-constraint>      </security-constraint>      <login-config>        <auth-method>BASIC</auth-method>        <realm-name>default</realm-name>      <login-config>      <security-role>        <role-name>employee</role-name>      </security-role>    </web-app>

对于只有某个角色才具有访问权限的应用程序来说,您需要在应用程序使用的角色与应用服务器定义的组或主体之间建立映射。为了在应用程序所使用的 employee 角色和应用服务器默认域定义的 engineer 组之间建立映射,您仍然需要在运行时部署描述符 sun-application.xml、sun-ejb-jar.xml 或 sun-web.xml 中指定该安全角色映射。

例如,将以下代码添加到 sun-application.xml 中就可以实现在 engineer 组的所有用户与某个应用程序的 employee 角色之间建立映射。

<security-role-mapping>      <role-name>employee</employee>      <group-name>engineer</group-name>    </security-role-mapping>

部署描述符覆盖注释行为。

示例:假设有以下 Enterprise JavaBean:

@Stateless    public class HelloEJB implements Hello {      @PermitAll      public String hello1(String msg) {        return "1: Hello, " + msg;      }          @RolesAllowed("javaee")      public String hello2(String msg) {        return "2: Hello, " + msg;      }          @DenyAll          public String hello3(String msg) {        return "3: Hello, " + msg;      }    }

安全注释和授权在GlassFish和Java EE 5 SDK中的应用(6)

时间:2011-07-22

您可以通过应用程序部署描述符 ejb-jar.xml 来覆盖方法权限:

<ejb-jar ...>      <enterprise-beans>        ...      </enterprise-beans>      <assembly-descriptor>        <security-role>javaee</security-role>        <method-permission>          <role-name>javaee</role-name>          <method>            <ejb-name>HelloEJB</ejb-name>            <method-intf>Local</method-intf>

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号