2015-04-23 17 views
23

Utilizzo il server di identità WSO2 per le implementazioni Single Sign-On.Gestione reclami personalizzata non riuscita nell'accesso singolo

Nelle mie applicazioni demo sto cercando di ottenere attributi di reclamo personalizzati dell'utente autenticato dal mio database JDBC.

Ho seguito questo blog di Pushpalanka.

Questo ha funzionato bene per l'identità del server 5.0.0

Ma quando ho aggiornato Identity Server con ultimo aggiornamento "WSO2-IS-5.0.0-SP01", Movimentazione rivendicazione personalizzato smesso di funzionare.

In seguito è la stack errori:

[2015/04/22 19: 09: 43.311] ERRORE {org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl .DefaultStepBasedSequenceHandler} - Mancata gestione dei sinistri! org.wso2.carbon.identity.application.authentication.framework.exception.FrameworkException: Index: 0, Size: 0 a com.wso2.sample.claim.handler.CustomClaimHandler.handleLocalClaims (CustomClaimHandler.java:200) presso com.wso2.sample.claim.handler.CustomClaimHandler.handleClaimMappings (CustomClaimHandler.java:66) a org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler.handleClaimMappings (DefaultStepBasedSequenceHandler. java: 604) a org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler.handlePostAuthentication (DefaultStepBasedSequenceHandler.java:394) a org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler.handle (DefaultStepBasedSequenceHandler.java:134) a org.wso2.carbon.identity.application.authentication.framework.handler. request.impl.DefaultAuthenticationRequestHandler.handle (DefaultAuthenticationRequestHandler.java:121) a org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator.handle (DefaultRequestCoordinator.java:94) a org.wso2.carbon.identity.application.authentication.framework.servlet.CommonAuthenticationServlet.doPost (CommonAuthenticationServlet.java:54) all'indirizzo javax.servlet.http.HttpServlet.service (HttpServlet.java:755) a javax.servlet. http.HttpServle t.service (HttpServlet.java:848) a org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service (ContextPathServletAdaptor.java:37) a org.eclipse.equinox.http.servlet.internal.ServletRegistration.service (ServletRegistration.java:61) a org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias ​​(ProxyServlet.java:128) a org.eclipse.equinox.http.servlet.internal.ProxyServlet.service (ProxyServlet.java:60) all'indirizzo javax.servlet.http.HttpServlet.service (HttpServlet.java:848) a org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service (DelegationServlet.java:68) a org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:305) a org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:210) a org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter (CharacterSetFilter.java: 61) a org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:243) a org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:210) a org .apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:222) a org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:123) a org.apache.catalina.authenticator.AuthenticatorBase .invoke (AuthenticatorBase.java:472) allo org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:171) allo org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:99) a org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation (CompositeValve.java:178) a org.wso2 .carbon.tomcat.ext.valves.CarbonTomcatValve $ 1.invoke (CarbonTomcatValve.java:47) a org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke (TenantLazyLoaderValve.java:56) a org.wso2. carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves (TomcatValveContainer.java:47) a org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke (CompositeValve.java:141) a org.wso2. carbon.tomcat.ext.valves.CarbonStuckThreadDetectionVa lve.invoke (CarbonStuckThreadDetectionValve.java:156) a org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:936) a org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke (CarbonContextCreatorValve.java:52) a org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:118) a org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:407) a org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1004) a org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.java:589) a org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.run (NioEndpoint.java:1653) a java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145) a java.util .concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:615) in java.lang.Thread.run (Thread.java:745) Causato da: java.lang.IndexOutOfBoundsException: Indice: 0, Dimensione: 0 a java.util.ArrayList.rangeCheck (ArrayList.java:635) a java.util.ArrayList.get (ArrayList.java:411) a org.wso2.carbon.claim.mgt.ClaimManagerHandler.validateClaims (ClaimManagerHandler.java: 668) a org.wso2.carbon.claim.mgt.ClaimManagerHa ndler.getMappingsFromOtherDialectToCarbon (ClaimManagerHandler.java:529) a org.wso2.carbon.claim.mgt.ClaimManagerHandler.getMappingsMapFromOtherDialectToCarbon (ClaimManagerHandler.java:614) a com.wso2.sample.claim.handler.CustomClaimHandler.handleLocalClaims (CustomClaimHandler.java:141).

Secondo il mio studio sul codice sorgente di Identity Server questo problema è in quadro di autenticazione a componente org.wso2.identity.application.authentication.framewotk.

Il problema potrebbe essere nella convalida delle domande, ma ho rovinato trovato alcuna validateClaims metodo chiamato nel codice sorgente.

Nel codice sorgente indicato nel post del blog, viene utilizzata la versione di Framework di autenticazione - 4.2.2.

Ho provato a utilizzare l'ultima versione di Framework di autenticazione - 4.2.3.

Ma il problema è ancora nello stesso componente.

sto ancora dando i miei sforzi su questo. Ho bisogno di una guida su questo.

Si prega di aiutare qualcuno se mi manca qualcosa o qualcuno di voi hanno affrontato lo stesso problema.

Grazie.

risposta

0

vedo comunemente problema con moduli personalizzati anche tra minori aggiornamenti di versione. Anche ora vedo che il nostro autenticatore personalizzato potrebbe non funzionare dopo la patch non ancora pubblicata. Hai davvero bisogno di una gestione dei reclami personalizzata?

Abbiamo esteso il dialetto richiesta per i crediti e gli attributi necessari per essere restituito al fornitore di servizi e l'implementazione di default quadro leggerà e user/ritorno gli attributi utente richiesti. Per la maggior parte dei casi dovrebbe essere sufficiente.

+0

Sì, leggere gli attributi utente da origini dati aggiuntive/aggiuntive non è sempre semplice. Abbiamo creato un gestore utenti personalizzato, autenticandoci con il LDAP primario e leggendo gli attributi da un'altra fonte (AD) sovrascrivendo il metodo getUserPropertyValues. – gusto2

+0

E hai ragione, i ruoli utente devono essere gestiti separatamente. Tuttavia, abbiamo cercato di mantenerlo semplice e farlo a livello di user store (anche perché ci sono alcune limitazioni). – gusto2

+1

Sì, sarà sufficiente nel caso in cui l'archivio utente da cui stiamo ottenendo le richieste sia configurato come primario/secondario nel server Identity. Ma ci sono alcuni altri problemi quando sto aggiungendo negozi di utenti secondari. ad esempio ActiveDirectory. Quando aggiungo ActiveDirectory come archivio utente secondario, tutti gli utenti non ottengono il ruolo interno/tutti per impostazione predefinita. Quindi dobbiamo andare manualmente agli utenti e assegnare ruoli. Anche questo funziona solo per una sessione attiva. Quindi, è meglio avere un gestore di attestazioni personalizzato anziché collegare l'archivio utente con il server Identity come archivio utente secondario. –

Problemi correlati