Me again :-)

I've implemented my own login provider, and to try to get a better 
understanding of whats being passed into it I added some debugging.

However, I added a call to LoginContext.getAttributeNames() and am now getting 
a ClassCast exception from the getAttributeNames() method :-

  | 2006-12-14 16:14:06,370 DEBUG [org.jboss.security.valve.PlainSSOAutoLogin] 
ssoLogin() started provider=si:njw-sso:njw:login
  | 2006-12-14 16:14:06,401 DEBUG [com.njw.NWLoginProvider] getId() started - 
returning id="si:njw-sso:njw:login"
  | 2006-12-14 16:14:06,401 DEBUG [org.jboss.security.valve.PlainSSOAutoLogin] 
ssoLogin() loginProvider=NWLoginProvider si:njw-sso:njw:login
  | 2006-12-14 16:14:06,401 DEBUG [com.njw.NWLoginProvider] exists(username) 
started - username=fgfgfgfgfgfgfgfgfgf
  | 2006-12-14 16:14:06,401 DEBUG [org.jboss.security.valve.PlainSSOAutoLogin] 
ssoLogin() success=true
  | 2006-12-14 16:14:06,417 DEBUG [com.njw.NWLoginProvider] 
processSSOLoginNotification() [EMAIL PROTECTED]
  | 2006-12-14 16:14:06,417 ERROR [STDERR] java.lang.ClassCastException: 
[Ljava.lang.Object;
  | 2006-12-14 16:14:06,417 ERROR [STDERR]      at 
org.jboss.security.idm.LoginContext.getAttributeNames(LoginContext.java:99)
  | 2006-12-14 16:14:06,417 ERROR [STDERR]      at 
com.njw.NWLoginProvider.processSSOLoginNotification(NWLoginProvider.java:39)
  | 2006-12-14 16:14:06,417 ERROR [STDERR]      at 
org.jboss.security.valve.PlainSSOAutoLogin.ssoLogin(PlainSSOAutoLogin.java:322)
  | 

my code :-

  | public void processSSOLoginNotification(LoginContext argLoginContext) 
throws IdentityException {
  |             this.loginContext = argLoginContext;
  |             log.debug("processSSOLoginNotification() logonContext=" + 
this.loginContext);
  |     
  |             String[] attributes = this.loginContext.getAttributeNames();
  | 

decompiled LoginContext code

  | public final class LoginContext
  |     implements Serializable
  | {
  | 
  |             public LoginContext()
  |             {
  | /*  41*/        contextMap = null;
  | /*  67*/        contextMap = new HashMap();
  |             }
  | 
  |             public Object getAttribute(String name)
  |             {
  | /*  78*/        return contextMap.get(name);
  |             }
  | 
  |             public void setAttribute(String name, Object value)
  |             {
  | /*  89*/        contextMap.put(name, value);
  |             }
  | 
  |             public String[] getAttributeNames()
  |             {
  | /*  99*/        return (String[])(String[])contextMap.keySet().toArray();
  |             }
  | 
  |             private Map contextMap;
  |             public static final String HTTP_REQUEST = "http_request";
  |             public static final String HTTP_RESPONSE = "http_response";
  |             public static final String SSO_USER = "jboss_sso_user";
  | }
  | 

revised code with additional debugging

  |     public String[] getAttributeNames()
  |     {
  |             if (contextMap == null){
  |                     log.debug("no attributes");
  |                     return null;
  |             }
  |             else
  |             {
  |             log.debug("Attribute count=" + this.contextMap.size() + " 
keyset=" + contextMap.keySet());
  |             for (Object key:contextMap.keySet()) {
  |                     log.debug("key=" + key + "       value=" + 
this.contextMap.get(key) );
  |             }
  |             
  |         return (String[])this.contextMap.keySet().toArray();
  |             }
  |     }
  | 
  | 

log from revised code

  | 2006-12-14 16:41:01,677 DEBUG [org.jboss.security.valve.PlainSSOAutoLogin] 
ssoLogin() started provider=si:njw-sso:njw:login
  | 2006-12-14 16:41:01,708 DEBUG [com.njw.NWLoginProvider] getId() started - 
returning id="si:njw-sso:njw:login"
  | 2006-12-14 16:41:01,708 DEBUG [org.jboss.security.valve.PlainSSOAutoLogin] 
ssoLogin() loginProvider=NWLoginProvider si:njw-sso:njw:login
  | 2006-12-14 16:41:01,708 DEBUG [com.njw.NWLoginProvider] exists(username) 
started - username=kkkkkkkkkk
  | 2006-12-14 16:41:01,708 DEBUG [org.jboss.security.valve.PlainSSOAutoLogin] 
ssoLogin() success=true
  | 2006-12-14 16:41:01,708 DEBUG [org.jboss.security.idm.LoginContext] 
setAttribute name=http_request [EMAIL PROTECTED]
  | 2006-12-14 16:41:01,708 DEBUG [org.jboss.security.idm.LoginContext] 
setAttribute name=http_response [EMAIL PROTECTED]
  | 2006-12-14 16:41:01,708 DEBUG [org.jboss.security.idm.LoginContext] 
setAttribute name=jboss_sso_user [EMAIL PROTECTED]
  | 2006-12-14 16:41:01,724 DEBUG [com.njw.NWLoginProvider] 
processSSOLoginNotification() [EMAIL PROTECTED]
  | 2006-12-14 16:41:01,724 DEBUG [org.jboss.security.idm.LoginContext] 
Attribute count=3 keyset=[http_request, jboss_sso_user, http_response]
  | 2006-12-14 16:41:01,724 DEBUG [org.jboss.security.idm.LoginContext] 
key=http_request       [EMAIL PROTECTED]
  | 2006-12-14 16:41:01,724 DEBUG [org.jboss.security.idm.LoginContext] 
key=jboss_sso_user       [EMAIL PROTECTED]
  | 2006-12-14 16:41:01,724 DEBUG [org.jboss.security.idm.LoginContext] 
key=http_response       [EMAIL PROTECTED]
  | 2006-12-14 16:41:01,724 ERROR [STDERR] java.lang.ClassCastException: 
[Ljava.lang.Object;
  | 2006-12-14 16:41:01,755 ERROR [STDERR]      at 
org.jboss.security.idm.LoginContext.getAttributeNames(LoginContext.java:114)
  | 

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

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

Reply via email to