我的 ejb-jar.xml 中有以下配置;
<assembly-descriptor>
<security-role>
<role-name>userRole</role-name>
</security-role>
<method-permission>
<role-name>userRole</role-name>
<method>
<ejb-name>MyBean</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
</assembly-descriptor>
我已经在我的 jboss.xml 中将以下配置为安全域(我添加了以下附加用户的默认域;
....
<security-domain>java:/jaas/JBossWS</security-domain>
...
User Properties Files Have Following;
SSOUSER=123456
User Roles Files have Following;
SSOUSER=userRole
我在客户端中编写了以下代码以连接到 JNP;
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
environment.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
environment.put(Context.PROVIDER_URL, "jnp://127.0.0.1:1099"); // remote machine IP
environment.put(Context.SECURITY_PRINCIPAL, "SSOUSER"); // User Context
environment.put(Context.SECURITY_CREDENTIALS, "123456");
并在尝试访问 bean 方法时在 jBoss 控制台上出现以下错误(查找工作正常,只要我尝试调用方法,我就会得到以下信息);
16:43:42,987 ERROR [RoleBasedAuthorizationInterceptor] Insufficient permissions, principal=null, requiredRoles=[userRole], principalRoles=[]
我的配置中是否缺少任何内容?
谢谢
--
斯茹内霍