Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  * Copyright 2014 JBoss by Red Hat.
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.
import  javax.enterprise.context.ContextNotActiveException;
import  javax.enterprise.inject.Instance;
import  org.kie.internal.identity.IdentityProvider;
import  org.slf4j.Logger;
import  org.slf4j.LoggerFactory;

Wrapper to allow to use backup providers in case of given context is not available
public class IdentityProviderCDIWrapper implements IdentityProvider {
	private static final Logger logger = LoggerFactory.getLogger(IdentityProviderCDIWrapper.class);
	private IdentityProvider delegate;
	public IdentityProviderCDIWrapper(IdentityProvider identityProvider,
			Instance<RequestScopedBackupIdentityProviderbackupProviders) {
		this. = identityProvider;
		this. = backupProviders;
	public String getName() {
		String name = "unknown";
        try {
            name = .getName();
            .debug( "Used original identity provider with user: {}"name);
        } catch (ContextNotActiveException e) {
        	if (!.isUnsatisfied()) {
        		for (RequestScopedBackupIdentityProvider provider : ) {
        			try {
		                name = provider.getName();
		                if (name != null && !..equals(name)) {
		                	.debug( "Used backup identity provider {} with user: {}"providername);
        			} catch (ContextNotActiveException ex) {
        return name;
	public List<StringgetRoles() {
    	List<Stringroles = null;
        try {
        	roles = .getRoles();
            .debug( "Used original identity provider with roles: {}"roles);
        } catch (ContextNotActiveException e) {
            throw new IllegalStateException("Unable to get roles due to missing context"e);
        return roles;
	public boolean hasRole(String role) {
		try {
			return .hasRole(role);
catch (ContextNotActiveException e) {
	        throw new IllegalStateException("Unable to check role membership due to missing context"e);
New to GrepCode? Check out our FAQ X