jboss4+ejb3下使用JAAS

我们知道,JAAS包括了Authentication和Authorization,下面我们分别看看:

Authentication分析如下:

1)类的annotate如下

@SecurityDomain("other")

public class CalculatorBean implements Calculator

这样将从users.properties中读取Authentication信息:

kabir=validpassword

2)使用的jboss类如下:

import org.jboss.security.SecurityAssociation;

import org.jboss.security.SimplePrincipal;

3)SimplePrincipal用来设置验证原则:

SecurityAssociation.setPrincipal(new SimplePrincipal("kabir"));

4)SecurityAssociation用来根据原则进行验证:

SecurityAssociation.setCredential("invalidpassword".toCharArray());

5)验证不通过,会抛exception

Authorization分析如下:

1)方法中指明角色

@MethodPermissions({"teacher"})

public int divide(int x, int y)
{
return x / y;
}

2)roles.properties中设置角色

kabir=student

3)运行中判断权限,并提示:

[java] Insufficient method permissions, principal=kabir, interface=org.jboss.ejb3.EJBContainerInvocation, requiredR

oles=[teacher], principalRoles=[student]

时间: 2024-12-05 06:33:26

jboss4+ejb3下使用JAAS的相关文章

在Jboss4.0下对MySql数据源的设置方法

在Jboss4中使用MySQL的数据源的设置方法: 一 把MySQL的JDBC驱动放到CLASSPATH中.同样,把它复制到/server/default/lib目录下 二 把/docs/examples/jca/mysql-ds.xml复制到/server/default/deploy目录下.修改mysql-ds.xml文件,设置<driver-class/>为 com.mysql.jdbc.Driver再把<connection-url/>设置为 jdbc:mysql://&l

JAAS之快速开发JBOSS自定义认证

      在企业应用中,认证是一个很常见的需求,而在J2EE项目中,认证登录大致有两种方式来实现:       一种是通过过滤器来拦截请求控制登录与权限,另外一种方式就是适用JAAS, 今天就简单介绍下使用JAAS快速开发一个JBOSS的自定义认证. 一.环境准备工作: 1.1 一个部署的war包,包内应当配置资源保护,和启用JAAS验证.   WEB-INF中web.xml 中配置资源保护 示例:           <security-constraint>  <web-resou

zooKeeper在weblogic下的bug

因为项目中需要使用分布式配置管理,所以使用了ZooKeeper,ZooKeeper的客户端使用的是zookeeper-3.4.5.jar原来使用的2.3.3版本,后来升级到了2.4.5升级版本,在本地调试总是正确的,但是放置到weblogic下就不行了,发现在weblogic10下竟然无法使用一直报错:  01/08 10:41:21 [WARN] ClientCnxn: Session 0x0 for server null, unexpected error, closing socket

Tomcat配置文件

Tomcat 基本配置   tomcat读取配置文件 首先简单说一下tomcat是如何读取配置文件的.tomcat在启动时,首先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME.然后找这个变量所指的目录下的conf文件夹,从中读取配置文件. 最重要的配置文件:server.xml 要配置tomcat,基本上了解server.xml,context.xml和web.xml就可以了.在Tomcat中,都有这几个文件的默认文件,如server.xml的内容如下: [xht

Jboss EAP 6.1集群环境下Ejb3.1 timer配置数据同步问题-----急急急!!!

问题描述 Hi,请问大神,我们公司有个web项目是基于JbossEAP6.1+EJB3.1+JSF2架构开发的,并部署在Jboss的集群环境下(ServerA,ServerBandServerC).项目中用EJB3.1TimerServer创建了一些scheduletasks,Timer的配置数据文件独立的存放于另一台中央文件服务器中.用户能访问一个配置task的页面,来创建新的task或更改,删除已有的tasks.但我们发现这样做在集群环境下出现问题.详情如下:当服务器被启动时,每台服务器会去

java程序访问websphere6.1 下 的EJB3.0

问题描述 请问,我用java程序,去调用一个发布在websphereapplicationsever6.1下的ejb3.0程序怎么掉,因为在调用的时候是加了,用户名密码,传过去,做一个安全认证的.我想问,是我的代码错了,还是那俩个文件放错了,还是都错了.希望能给个全点的答案,谢谢.代码如下.接口:packageitso.bank;publicinterfaceSecurityEJB{publicStringecho(Stringmessage);}实现类:packageitso.bank;imp

jboss4。0下mysql数据源的配置

花了一个小时的时间,搞了一下jboss4.0下mysql数据源的配置.下面是一些具体过程1.首先安装mysql数据库并将其驱动程序考到jboss的serverdefaultlib下面2.将mysql-ds.xml文件放置到serverdefaultdeploy下面 内容如下: <datasources> <local-tx-datasource> <jndi-name>MySqlDS</jndi-name> <connection-url>jdb

JBoss下的EJB3开发无状态会话Bean

1.开发一个具有Remote和Local接口的EJB3 Stateless SessionBean.如有那里写的不好请大家多多指教.################################ 好了先介绍一下明星演员们:###############################Remote接口:RemoteHelloWorld.javaLocal接口:LocalHelloWorld.javaSessionBean:HelloWorldBean.javaJNDI配置:jndi.proper

一步一步学EJB3.0(三):悟透会话Bean(下)

三.无状态会话Bean实例 在上一篇文章里,其实我们已经应用到了无状态会话Bean,那好,下面我们详细的来分析下上一篇文 章里给出的示例程序. 没有阅读过的朋友请点击这里阅读:<<一步一步学EJB 3.0(二):初探企业 EJB模块开发>> . 首先我们来看看接口的定义: 1 /** 2 * 远程接口 3 * @author Beniao 4 */ 5 @Remote 6 public interface HelloRemote { 7 void sayHello(String s