问题
I am using WSO2 Identity Server 5.1.0 and configured ADFS as an Identity Provider using the management console. I tested the created IDP by selecting it in one of my service provider and all is working as expected.
Now I want to set up the ADFS IDP as the default IDP. For that I configured the file (identity/service-providers/default.xml) as explained in this post. The problem is that when I try to access my application, I get the following error:
TID: [-1234] [] [2016-02-11 16:21:46,521] ERROR {org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator} - Exception in Authentication Framework
java.lang.NullPointerException
at org.wso2.carbon.identity.application.authentication.framework.config.builder.UIBasedConfigurationBuilder.loadFederatedAuthenticators(UIBasedConfigurationBuilder.java:169)
at org.wso2.carbon.identity.application.authentication.framework.config.builder.UIBasedConfigurationBuilder.getSequence(UIBasedConfigurationBuilder.java:108)
at org.wso2.carbon.identity.application.authentication.framework.config.ConfigurationFacade.getSequenceConfig(ConfigurationFacade.java:66)
at org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator.findPreviousAuthenticatedSession(DefaultRequestCoordinator.java:302)
Here is the configuration I used:
<ServiceProvider>
<ApplicationID>1</ApplicationID>
<ApplicationName>default</ApplicationName>
<Description>Default Service Provider</Description>
<InboundAuthenticationConfig>
<InboundAuthenticationRequestConfigs>
<InboundAuthenticationRequestConfig>
<InboundAuthKey>default</InboundAuthKey>
<InboundAuthType></InboundAuthType>
<Properties></Properties>
</InboundAuthenticationRequestConfig>
</InboundAuthenticationRequestConfigs>
</InboundAuthenticationConfig>
<LocalAndOutBoundAuthenticationConfig>
<AuthenticationSteps>
<AuthenticationStep>
<StepOrder>1</StepOrder>
<FederatedIdentityProviders>
<IdentityProvider>
<IdentityProviderName>adfs-idp</IdentityProviderName>
<IsEnabled>true</IsEnabled>
<DefaultAuthenticatorConfig>
<FederatedAuthenticatorConfig>
<Name>SAMLSSOAuthenticator</Name>
<DisplayName>samlsso</DisplayName>
<IsEnabled>true</IsEnabled>
</FederatedAuthenticatorConfig>
</DefaultAuthenticatorConfig>
</IdentityProvider>
</FederatedIdentityProviders>
</AuthenticationStep>
</AuthenticationSteps>
</LocalAndOutBoundAuthenticationConfig>
<RequestPathAuthenticatorConfigs></RequestPathAuthenticatorConfigs>
<InboundProvisioningConfig></InboundProvisioningConfig>
<OutboundProvisioningConfig></OutboundProvisioningConfig>
<ClaimConfig>
<AlwaysSendMappedLocalSubjectId>true</AlwaysSendMappedLocalSubjectId>
</ClaimConfig>
<PermissionAndRoleConfig></PermissionAndRoleConfig>
"adfs-idp" is the name I used for the Identity Provider Name when I registered the IDP in the management console.
回答1:
To solve the issue I had to change some xml elements in the FederatedIdentityProviders like below.
<FederatedIdentityProviders>
<IdentityProvider>
<IdentityProviderName>adfs-idp</IdentityProviderName>
<IsEnabled>true</IsEnabled>
<FederatedAuthenticatorConfigs>
<FederatedAuthenticatorConfig>
<Name>SAMLSSOAuthenticator</Name>
<DisplayName>samlsso</DisplayName>
<IsEnabled>true</IsEnabled>
</FederatedAuthenticatorConfig>
</FederatedAuthenticatorConfigs>
<DefaultAuthenticatorConfig>SAMLSSOAuthenticator</DefaultAuthenticatorConfig>
</IdentityProvider>
</FederatedIdentityProviders>
来源:https://stackoverflow.com/questions/35343448/set-wso2-identity-provider-as-default-idp-for-new-applications