Example usage for org.springframework.security.config Elements X509

List of usage examples for org.springframework.security.config Elements X509

Introduction

In this page you can find the example usage for org.springframework.security.config Elements X509.

Prototype

String X509

To view the source code for org.springframework.security.config Elements X509.

Click Source Link

Usage

From source file:org.springframework.security.config.http.AuthenticationConfigBuilder.java

void createX509Filter(BeanReference authManager) {
    Element x509Elt = DomUtils.getChildElementByTagName(httpElt, Elements.X509);
    RootBeanDefinition filter = null;/* w w w.  j av a2  s  .  c  o  m*/

    if (x509Elt != null) {
        BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder
                .rootBeanDefinition(X509AuthenticationFilter.class);
        filterBuilder.getRawBeanDefinition().setSource(pc.extractSource(x509Elt));
        filterBuilder.addPropertyValue("authenticationManager", authManager);

        String regex = x509Elt.getAttribute("subject-principal-regex");

        if (StringUtils.hasText(regex)) {
            BeanDefinitionBuilder extractor = BeanDefinitionBuilder
                    .rootBeanDefinition(SubjectDnX509PrincipalExtractor.class);
            extractor.addPropertyValue("subjectDnRegex", regex);

            filterBuilder.addPropertyValue("principalExtractor", extractor.getBeanDefinition());
        }

        injectAuthenticationDetailsSource(x509Elt, filterBuilder);

        filter = (RootBeanDefinition) filterBuilder.getBeanDefinition();
        createPrauthEntryPoint(x509Elt);

        createX509Provider();
    }

    x509Filter = filter;
}

From source file:org.springframework.security.config.http.AuthenticationConfigBuilder.java

private void createX509Provider() {
    Element x509Elt = DomUtils.getChildElementByTagName(httpElt, Elements.X509);
    BeanDefinition provider = new RootBeanDefinition(PreAuthenticatedAuthenticationProvider.class);

    RootBeanDefinition uds = new RootBeanDefinition();
    uds.setFactoryBeanName(BeanIds.USER_DETAILS_SERVICE_FACTORY);
    uds.setFactoryMethodName("authenticationUserDetailsService");
    uds.getConstructorArgumentValues().addGenericArgumentValue(x509Elt.getAttribute(ATT_USER_SERVICE_REF));

    provider.getPropertyValues().addPropertyValue("preAuthenticatedUserDetailsService", uds);

    x509ProviderRef = new RuntimeBeanReference(pc.getReaderContext().registerWithGeneratedName(provider));
}