我正在尝试让JAAS与OC4J一起工作。
我已经让JAAS在JBoss工作。对我来说,将JAAS与JBoss一起使用很简单。
在应用程序的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?什么是最简单的解决方案?
最佳答案
好的,再做一些作业,发现它快要完成了。您需要将此添加到$ 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中包括该类。仍在登录的组/角色方面。
更新:
更好的是,找到了官方网页:
http://download.oracle.com/docs/cd/B32110_01/web.1013/b28957/jaas_intro.htm
http://download.oracle.com/docs/cd/B32110_01/web.1013/b28957/loginmod.htm#BABCDDAI