All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.esfinge.guardian.rbac.populator.DeclareRolesPopulator Maven / Gradle / Ivy

The newest version!
package org.esfinge.guardian.rbac.populator;

import java.util.HashSet;
import java.util.Set;

import org.esfinge.guardian.context.AuthorizationContext;
import org.esfinge.guardian.populator.Populator;
import org.esfinge.guardian.rbac.annotation.context.DeclareRoles;
import org.esfinge.guardian.rbac.entity.Role;
import org.esfinge.guardian.rbac.utils.RbacConfig;

public class DeclareRolesPopulator implements Populator {

	@Override
	public void populate(AuthorizationContext context) {

		RbacConfig rbacConfig = new RbacConfig();
		Set declareRolesSet = new HashSet();

		Class clazz = context.getGuardedObj().getClass();
		if (clazz.isAnnotationPresent(DeclareRoles.class)) {
			String[] roleNames = clazz.getAnnotation(DeclareRoles.class).value();
			for (String roleName : roleNames) {
				declareRolesSet.add(new Role(roleName));
			}

			context.getSubject().put(rbacConfig.getRolesKey(), declareRolesSet);
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy