Search in sources :

Example 1 with BasicConfigResolver

use of org.jboss.ws.common.configuration.BasicConfigResolver in project jbossws-cxf by jbossws.

the class ServerBeanCustomizer method configureEndpoint.

protected void configureEndpoint(EndpointImpl endpoint) {
    // Configure wsdl file publisher
    if (wsdlPublisher != null) {
        endpoint.setWsdlPublisher(wsdlPublisher);
    }
    // Configure according to the specified jaxws endpoint configuration
    if (// before publishing, we set the jaxws conf
    !endpoint.isPublished()) {
        final Object implementor = endpoint.getImplementor();
        // setup our invoker for http endpoints if invoker is not configured in jbossws-cxf.xml DD
        boolean isHttpEndpoint = endpoint.getAddress() != null && endpoint.getAddress().substring(0, 5).toLowerCase(Locale.ENGLISH).startsWith("http");
        if ((endpoint.getInvoker() == null) && isHttpEndpoint) {
            final AnnotationsInfo ai = dep.getAttachment(AnnotationsInfo.class);
            endpoint.setInvoker(new JBossWSInvoker(ai.hasAnnotatedClasses(UseAsyncMethod.class.getName())));
        }
        // ** Endpoint configuration setup **
        final String endpointClassName = implementor.getClass().getName();
        final List<Endpoint> depEndpoints = dep.getService().getEndpoints();
        for (Endpoint depEndpoint : depEndpoints) {
            if (endpointClassName.equals(depEndpoint.getTargetBeanName())) {
                org.jboss.wsf.spi.metadata.config.EndpointConfig config = depEndpoint.getEndpointConfig();
                if (config == null) {
                    // the ASIL did not set the endpoint configuration, perhaps because we're processing an
                    // Endpoint.publish() API started endpoint or because we're on WildFly 8.0.0.Final or
                    // previous version. We compute the config here then (clearly no container injection
                    // will be performed on optional handlers attached to the config)
                    BasicConfigResolver bcr = new BasicConfigResolver(dep, implementor.getClass());
                    config = bcr.resolveEndpointConfig();
                    depEndpoint.setEndpointConfig(config);
                }
                if (config != null) {
                    endpoint.setEndpointConfig(config);
                }
                // also save Service QName and Port QName in the endpoint for later matches
                depEndpoint.setProperty(Message.WSDL_PORT, endpoint.getEndpointName());
                depEndpoint.setProperty(Message.WSDL_SERVICE, endpoint.getServiceName());
            }
        }
        // JASPI
        final JASPIAuthenticationProvider jaspiProvider = (JASPIAuthenticationProvider) ServiceLoader.loadService(JASPIAuthenticationProvider.class.getName(), null, ClassLoaderProvider.getDefaultProvider().getServerIntegrationClassLoader());
        if (jaspiProvider == null) {
            Loggers.DEPLOYMENT_LOGGER.cannotFindJaspiClasses();
        } else {
            if (jaspiProvider.enableServerAuthentication(endpoint, depEndpoints.get(0))) {
                endpoint.getInInterceptors().add(new AuthenticationMgrSubjectCreatingInterceptor());
            }
        }
    }
}
Also used : UseAsyncMethod(org.apache.cxf.annotations.UseAsyncMethod) JBossWSInvoker(org.jboss.wsf.stack.cxf.JBossWSInvoker) Endpoint(org.jboss.wsf.spi.deployment.Endpoint) DefaultHttpEndpoint(org.jboss.ws.common.deployment.DefaultHttpEndpoint) JASPIAuthenticationProvider(org.jboss.wsf.spi.security.JASPIAuthenticationProvider) AnnotationsInfo(org.jboss.wsf.spi.deployment.AnnotationsInfo) BasicConfigResolver(org.jboss.ws.common.configuration.BasicConfigResolver) AuthenticationMgrSubjectCreatingInterceptor(org.jboss.wsf.stack.cxf.security.authentication.AuthenticationMgrSubjectCreatingInterceptor)

Aggregations

UseAsyncMethod (org.apache.cxf.annotations.UseAsyncMethod)1 BasicConfigResolver (org.jboss.ws.common.configuration.BasicConfigResolver)1 DefaultHttpEndpoint (org.jboss.ws.common.deployment.DefaultHttpEndpoint)1 AnnotationsInfo (org.jboss.wsf.spi.deployment.AnnotationsInfo)1 Endpoint (org.jboss.wsf.spi.deployment.Endpoint)1 JASPIAuthenticationProvider (org.jboss.wsf.spi.security.JASPIAuthenticationProvider)1 JBossWSInvoker (org.jboss.wsf.stack.cxf.JBossWSInvoker)1 AuthenticationMgrSubjectCreatingInterceptor (org.jboss.wsf.stack.cxf.security.authentication.AuthenticationMgrSubjectCreatingInterceptor)1