Skip to content

Commit 3cdeee4

Browse files
committed
Simplify JavaConfig SAML 2.0 Sample
Issue spring-projectsgh-8777
1 parent 526c84f commit 3cdeee4

File tree

1 file changed

+24
-27
lines changed
  • samples/javaconfig/saml2login/src/main/java/org/springframework/security/samples/config

1 file changed

+24
-27
lines changed

samples/javaconfig/saml2login/src/main/java/org/springframework/security/samples/config/SecurityConfig.java

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -29,56 +29,53 @@
2929
import org.springframework.security.saml2.credentials.Saml2X509Credential;
3030
import org.springframework.security.saml2.provider.service.registration.InMemoryRelyingPartyRegistrationRepository;
3131
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistration;
32+
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistrationRepository;
3233
import org.springframework.security.saml2.provider.service.servlet.filter.Saml2WebSsoAuthenticationFilter;
3334

3435
import static org.springframework.security.saml2.credentials.Saml2X509Credential.Saml2X509CredentialType.DECRYPTION;
3536
import static org.springframework.security.saml2.credentials.Saml2X509Credential.Saml2X509CredentialType.SIGNING;
3637
import static org.springframework.security.saml2.credentials.Saml2X509Credential.Saml2X509CredentialType.VERIFICATION;
38+
import static org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistration.withRegistrationId;
3739

3840
@EnableWebSecurity
3941
@EnableGlobalMethodSecurity(prePostEnabled = true)
4042
public class SecurityConfig extends WebSecurityConfigurerAdapter {
4143

42-
RelyingPartyRegistration getSaml2AuthenticationConfiguration() throws Exception {
43-
//remote IDP entity ID
44-
String idpEntityId = "https://simplesaml-for-spring-saml.cfapps.io/saml2/idp/metadata.php";
45-
//remote WebSSO Endpoint - Where to Send AuthNRequests to
46-
String webSsoEndpoint = "https://simplesaml-for-spring-saml.cfapps.io/saml2/idp/SSOService.php";
47-
//local registration ID
44+
RelyingPartyRegistrationRepository relyingPartyRegistrations() {
4845
String registrationId = "simplesamlphp";
49-
//local entity ID - autogenerated based on URL
50-
String localEntityIdTemplate = "{baseUrl}/saml2/service-provider-metadata/{registrationId}";
51-
//local signing (and decryption key)
46+
47+
String rpEntityId = "{baseUrl}/saml2/service-provider-metadata/{registrationId}";
48+
String assertionConsumerServiceLocation = "{baseUrl}" + Saml2WebSsoAuthenticationFilter.DEFAULT_FILTER_PROCESSES_URI;
5249
Saml2X509Credential signingCredential = getSigningCredential();
53-
//IDP certificate for verification of incoming messages
54-
Saml2X509Credential idpVerificationCertificate = getVerificationCertificate();
55-
String acsUrlTemplate = "{baseUrl}" + Saml2WebSsoAuthenticationFilter.DEFAULT_FILTER_PROCESSES_URI;
56-
return RelyingPartyRegistration.withRegistrationId(registrationId)
50+
51+
String apEntityId = "https://simplesaml-for-spring-saml.cfapps.io/saml2/idp/metadata.php";
52+
String singleSignOnServiceLocation = "https://simplesaml-for-spring-saml.cfapps.io/saml2/idp/SSOService.php";
53+
Saml2X509Credential apVerificationCertificate = getVerificationCertificate();
54+
55+
RelyingPartyRegistration relyingParty = withRegistrationId(registrationId)
56+
.entityId(rpEntityId)
5757
.signingX509Credentials(c -> c.add(signingCredential))
58-
.entityId(localEntityIdTemplate)
59-
.assertionConsumerServiceLocation(acsUrlTemplate)
58+
.assertionConsumerServiceLocation(assertionConsumerServiceLocation)
6059
.providerDetails(assertingParty -> assertingParty
61-
.entityId(idpEntityId)
62-
.verificationX509Credentials(c -> c.add(idpVerificationCertificate))
63-
.singleSignOnServiceLocation(webSsoEndpoint))
60+
.entityId(apEntityId)
61+
.verificationX509Credentials(c -> c.add(apVerificationCertificate))
62+
.singleSignOnServiceLocation(singleSignOnServiceLocation)
63+
)
6464
.build();
65+
return new InMemoryRelyingPartyRegistrationRepository(relyingParty);
6566
}
6667

6768
@Override
6869
protected void configure(HttpSecurity http) throws Exception {
6970
// @formatter:off
7071
http
71-
.authorizeRequests()
72+
.authorizeRequests(authz -> authz
7273
.anyRequest().authenticated()
73-
.and()
74-
.saml2Login()
75-
.relyingPartyRegistrationRepository(
76-
new InMemoryRelyingPartyRegistrationRepository(
77-
getSaml2AuthenticationConfiguration()
78-
)
79-
)
74+
)
75+
.saml2Login(saml2 -> saml2
76+
.relyingPartyRegistrationRepository(relyingPartyRegistrations())
8077
.loginProcessingUrl("/sample/jc/saml2/sso/{registrationId}")
81-
;
78+
);
8279
// @formatter:on
8380
}
8481

0 commit comments

Comments
 (0)