I have done cas sso with jboss portal successfully.

Now I want to use our userinfo database for Authenticate.
I write a new CASAuthenticationService implements AuthenticationService
instead of the CASAuthenticationService in the portal-identity-sso-lib.jar.


  | public class CASAuthenticationService implements AuthenticationService{
  |     private final static Logger logger = 
Logger.getLogger(CASAuthenticationService.class);
  |     private String datasource = null;
  |     private String queryPasswordByUserNameSql = null;
  |     
  |     
  |     public String getQueryPasswordByUserNameSql() {
  |             return queryPasswordByUserNameSql;
  |     }
  |     public void setQueryPasswordByUserNameSql(String 
queryPasswordByUserNameSql) {
  |             this.queryPasswordByUserNameSql = queryPasswordByUserNameSql;
  |     }
  |  
  | 
  |  
  |     public String getDatasource() {
  |             return datasource;
  |     }
  |     public void setDatasource(String datasource) {
  |             this.datasource = datasource;
  |     }
  |     public void start(){
  |             
  |     }
  |     public void stop(){
  |             
  |     }
  |     
  |     @Override
  |     public boolean authenticate(String userName, String password) {
  |             logger.info("userName="+userName+",password="+password);
  |             Connection c = null;
  |             PreparedStatement ps = null;
  |             ResultSet rs = null;
  |             try {
  |                     Context ctx = new InitialContext();
  |                     DataSource ds = (DataSource) 
ctx.lookup(this.datasource);
  |                     c = ds.getConnection();
  |                     ps = 
c.prepareStatement(this.queryPasswordByUserNameSql);
  |                     ps.setString(1, userName);
  |                     rs = ps.executeQuery();
  |                     if(rs!=null&&rs.next()){
  |                              String tmpPassword = rs.getString(1);
  |                              tmpPassword = 
EncryptHelper.dencrypt(tmpPassword);
  |                              logger.info("password 
equals="+(password.equals(tmpPassword)));
  |                              return password.equals(tmpPassword);
  |                     }                       
  |             } catch (Exception e) {
  |                     e.printStackTrace();
  |                     logger.error(e);
  |                     return false;                   
  |             }finally{
  |                     try{
  |                             if(rs!=null){
  |                                     rs.close();
  |                             }
  |                             if(ps!=null){
  |                                     ps.close();
  |                             }
  |                             if(!c.isClosed()){
  |                                     c.close();
  |                             }
  |                     }catch(Exception e){
  |                             logger.error(e);
  |                     }
  |             }
  |             return false;
  |     }
  |     
  | }
  | 



  |    <mbean code="test.portal.identity.sso.cas.crm.CASAuthenticationService"
  |          name="portal:service=Module,type=CASAuthenticationService"
  |          xmbean-dd=""
  |          
xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
  |       <xmbean/>
  |       <attribute name="Datasource">java:/jdbc/CRM</attribute>
  |       <attribute name="QueryPasswordByUserNameSql">select password from 
personinfo where userCode=?</attribute>
  |    </mbean>
  | 


I deploy the jar and start server.
It runs well.
and the CASAuthenticationService ruturn true after sign in,cas server gives a 
ticket too.
But  portal still redirect to a portal login page.

I am wondering and puzled.
I need help.

thanks

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4172729#4172729

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4172729
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to