我正在尝试让JAAS与OC4J协同工作。
我以前也让JAAS与JBoss一起工作过。在JBoss中使用JAAS很简单(对我来说)。
在应用程序的jboss-web.xml中,放入以下内容:
<security-domain>java:/jaas/myApp</security-domain>并将以下内容放入JBoss的login-config.xml中:
<application-policy name = "myApp">
<authentication>
<login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag = "required">
<module-option name="dsJndiName">java:/jdbc/myDS</module-option>
<module-option name="principalsQuery">SELECT password FROM users WHERE username=?</module-option>
<module-option name="rolesQuery">select name, 'Roles' from groups ...</module-option>
</login-module>
</authentication>
</application-policy>那么OC4J中的等价物是什么呢?我真的需要处理Realms、UserManagers等吗?或者我可以只在system-jazn-data.xml文件中添加一些XML吗?最简单的解决方案是什么?
发布于 2010-08-20 01:54:46
好了,多做了一些功课,发现已经很接近了。您需要将此代码添加到$OC4J_HOME/j2ee/yourinstance/config/system-jazn-data.xml中
<application>
<name>myApp</name>
<login-modules>
<login-module>
<class>com.company.project.JDBCLoginModule</class>
<control-flag>required</control-flag>
<options>
<option>
<name>principalsQuery</name>
<value>SELECT password FROM users WHERE username=?</value>
</option>
<option>
<name>dsJndiName</name>
<value>jdbc/myDS</value>
</option>
</options>
</login-module>
</login-modules>
</application>然后,您必须创建实现javax.security.auth.spi.LoginModule的JDBCLoginModule类。也许OC4J已经有这个类了,但是我找不到它。包括要部署到OC4J EAR/WAR/JAR中的类。
仍在处理登录的组/角色方面。
更新:更好的是,找到了官方网页:
发布于 2011-01-25 00:02:19
a)实际上,最好的方法是把它放在orion- application上,它会在每次部署应用程序时自动安装:它看起来像这样
<jazn-loginconfig>
<application>
<name>ApplicationName</name>
<login-modules>
<login-module>
<class>mycomapany.idm.loginmodules.BlahBlahLoginModule</class>
<control-flag>required</control-flag>
<options>
<option>
<name>debug</name>
<value>true</value>
</option>
</options>
</login-module>
</login-modules>
</application>
</jazn-loginconfig>b)您应该检查JAZN,它是JAAS的Oracle实现/替代。它更健壮、更灵活(尽管更复杂)。现在,如果您的登录逻辑像您上面发布的那样简单,我认为这就足够了。
https://stackoverflow.com/questions/3516221
复制相似问题