zoukankan      html  css  js  c++  java
  • EJB>自定义安全域 小强斋

    把用户名/密码及角色存放在users.propertes 和roles.properties 文件,不便于日后的管理。大多数情况下我们都希
    望把用户名/密码及角色存放在数据库中。为此,我们需要自定义安全域,下面的例子定义了一个名为foshanshop
    的安全域,他采用数据库存储用户名及角色。
    安全域在[jboss 安装目录]/server/default/conf/login-config.xml 文件中定义,本例配置片断如下:
    <!-- ....................... foshanshop login configuration ....................-->
    <application-policy name="foshanshop">
    <authentication>
    <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule"
    flag="required">
    <module-option name="dsJndiName">java:/DefaultMySqlDS</module-option>
    <module-option name="principalsQuery">
    select password from sys_user where name=?
    </module-option>
    <module-option name="rolesQuery">
    select rolename,'Roles' from sys_userrole where username=?
    </module-option>
    <module-option name = "unauthenticatedIdentity">AnonymousUser</module-option>
    </login-module>
    </authentication>
    上面使用了Jboss 数据库登录模块(org.jboss.security.auth.spi.DatabaseServerLoginModule),他的dsJndiName 属性(数据源JNDI 名)使用DefaultMySqlDS 数据源(本教程自定义的数据源,关于数据源的配置请参考后面章节:JBoss
    数据源的配置), principalsQuery 属性定义Jboss 通过给定的用户名如何获得密码, rolesQuery 属性定义Jboss通过给定的用户名如何获得角色列表,注意:SQL 中的'Roles'常量字段不能去掉。unauthenticatedIdentity 属性允许匿名用户(不提供用户名及密码)访问。
    “foshanshop”安全域使用的sys_user 和sys_userrole 表是自定义表,实际项目开发中你可以使用别的表名。
    sys_user 表必须含有用户名及密码两个字段,字段类型为字符型,至于字符长度视你的应用而定。
    sys_userrole 表必须含有用户名及角色两个字段,字段类型为字符型,字符长度也视你的应用而定。
    下面是sys_user,sys_userrole 表的具体定义(实际项目开发中字段名可以自定义)

    在完成上面的配置后,我们就可以使用“foshanshop”安全域了,配置内容如下:
    jboss.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <jboss>
    <!-- Bug in EJB3 of JBoss 4.0.4 GA
    <security-domain>java:/jaas/foshanshop</security-domain>
    -->
    <security-domain>foshanshop</security-domain>
    <unauthenticated-principal>AnonymousUser</unauthenticated-principal>
    </jboss>

    jboss-web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE jboss-web PUBLIC
    "-//JBoss//DTD Web Application 2.3V2//EN"
    "http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd">
    <jboss-web>
    <security-domain>java:/jaas/foshanshop</security-domain>
    </jboss-web>


     

  • 相关阅读:
    Python 迭代器&生成器,装饰器,递归,算法基础:二分查找、二维数组转换,正则表达式,作业:计算器开发
    python--如何在线上环境优雅的修改配置文件?
    Python补充--Python内置函数清单
    python3--open函数
    内置函数--map,filter,reduce
    Python内置函数—bytearray
    python lambda表达式简单用法
    Python浅拷贝copy()与深拷贝deepcopy()区别
    点击复制
    eval(function(p,a,c,k,e,d){e=function(c)加解密
  • 原文地址:https://www.cnblogs.com/xiaoqiangzhaitai/p/5429596.html
Copyright © 2011-2022 走看看