JBossSSO学习笔记2oracle
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JBossSSO学习笔记2oracle,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5469字,纯文字阅读大概需要8分钟。
内容图文
![JBossSSO学习笔记2oracle](/upload/InfoBanner/zyjiaocheng/530/7f51be7c4f53448a9cf993e3873ce57a.jpg)
我用jboss sso和oracle实现的小例子(没有使用jaas) 1、jboss-sso.sar/conf/sso.cfg.xml部分配置 : (这里的数据库连接是OracleLoginProvider,也要注意property name="trustServer"写的正确) jboss-sso identity-management login provider id="si:my:oracl
我用jboss sso和oracle实现的小例子(没有使用jaas)
1、jboss-sso.sar/conf/sso.cfg.xml部分配置:
(这里的数据库连接是OracleLoginProvider,也要注意
<jboss-sso>
<identity-management>
</identity-management>
<sso-processor>
</sso-processor>
</jboss-sso>
2、确保context.xml在WAR文件的WEB-INF下配置
这是使用自己的认证机制指示Web应用程序:
注:
1)当用例执行验证您的Web应用程序内通过登录屏幕或其他一些机制的一部分,执行这一过程中,当登录成功,发送通知的这个事件,在SSO引擎使用以下API调用:
org.jboss.security.saml.SSOManager. processManualLoginNotification(HttpServletRequest request,String user)
2)当SSOEngine执行自动登入响应一个值得信赖SSOToken ,它将把下列通知您LoginProvider :
processSSOLoginNotification(LoginContext)
在这里,你可以处理任何Web应用程序所需的环境设置的身份验证的用户session
注意:当使用此方式的认证, Web应用程序将能够获得特等登录到该系统使用以下API呼叫:
org.jboss.security.saml.SSOManager.getUserPrincipal(HttpServletRequest)
3、jboss-federation-server.ear/jboss-federation-server.sar/conf下server.cfg.xml
<jboss-sso>
<federation-server>
</federation-server>
</jboss-sso>
注:不要忘了把OracleLoginProvider.class打成jar包放在jboss-sso.sar/下,当然还有oracle数据库驱动
4、
在C:/WINDOWS/system32/drivers/etc下加入:
127.0.0.1 zjftest1.jboss.com
127.0.2.1 zjftest2.jboss.com
5、在jboss-sso-testoralce.ear/META-INF/下的application.xml里
<web-uri>testoracle.war</web-uri>
是ear下war包的名字,如果修改了,不要忘记该哟。
6、我的OracleLoginProvider源代码如下:
package test.post;
import java.security.Principal;
import java.sql.*;
import java.util.Collection;
import java.util.Properties;
import org.jboss.security.idm.Identity;
import org.jboss.security.idm.IdentityException;
import org.jboss.security.idm.LoginContext;
import org.jboss.security.idm.LoginProvider;
public class OracleLoginProvider implements LoginProvider{
static { // is there a better way to do this?
try {
java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
} catch (SQLException e) {
e.printStackTrace();
}
}
private Properties props;
private String id;
public OracleLoginProvider() {
}
public void setId(String id) throws IdentityException {
this.id=id;
}
public String getId() throws IdentityException {
return this.id;
}
public boolean exists(Principal principal) throws IdentityException {
return exists(principal.getName());
}
public boolean exists(String username) throws IdentityException {
Connection conn = connect();
// username and existsQuery are set in sso.cfg.xml
String username1 = props.getProperty("username");
String sql = props.getProperty("existsSQL");
System.out.println("-----------existsSQL:"+sql);
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ResultSet rs = ps.executeQuery();
System.out.println("---------exists----------------");
return rs.next();
} catch (SQLException e) {
e.printStackTrace();
}
finally {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return false;
}
public Identity read(Principal principal) throws IdentityException {
return read(principal.getName());
}
public Identity read(String username) throws IdentityException {
Identity ident = new Identity();
ident.setUserName(username);
// need to set roles too.
return ident;
}
public boolean login(Principal principal, byte[] password) throws IdentityException {
return false;
}
public boolean login(String username, byte[] password) throws IdentityException {
//在这里只是验证了用户名
return exists(username);
}
public void processSSOLoginNotification(LoginContext loginContext) throws IdentityException {
}
public Collection readAllRoles() throws IdentityException {
return null;
}
public void setProperties(Properties properties) throws IdentityException {
this.props = properties;
}
private java.sql.Connection connect () {
// connectionURL, username and password are set in sso.cfg.xml
String url = this.props.getProperty("connectionURL");
String username = this.props.getProperty("username");
String password = this.props.getProperty("password");
try {
return DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
内容总结
以上是互联网集市为您收集整理的JBossSSO学习笔记2oracle全部内容,希望文章能够帮你解决JBossSSO学习笔记2oracle所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。