Example usage for org.apache.shiro.authz AuthorizationInfo AuthorizationInfo

List of usage examples for org.apache.shiro.authz AuthorizationInfo AuthorizationInfo

Introduction

In this page you can find the example usage for org.apache.shiro.authz AuthorizationInfo AuthorizationInfo.

Prototype

AuthorizationInfo

Source Link

Usage

From source file:ddf.security.pep.redaction.plugin.test.RedactionPluginTest.java

License:Open Source License

@Before
public void setup() {
    plugin = new RedactionPlugin();

    QueryRequestImpl request = new QueryRequestImpl(new Query() {
        @Override// ww  w .  j av  a  2s. c o m
        public int getStartIndex() {
            return 0;
        }

        @Override
        public int getPageSize() {
            return 10;
        }

        @Override
        public SortBy getSortBy() {
            return null;
        }

        @Override
        public boolean requestsTotalResultsCount() {
            return false;
        }

        @Override
        public long getTimeoutMillis() {
            return 0;
        }

        @Override
        public boolean evaluate(Object o) {
            return true;
        }

        @Override
        public Object accept(FilterVisitor filterVisitor, Object o) {
            return null;
        }
    });

    Map<String, Serializable> properties = new HashMap<String, Serializable>();

    Realm realm = new SimpleAuthzRealm();
    ((SimpleAuthzRealm) realm).setAuthorizationInfo(new AuthorizationInfo() {
        @Override
        public Collection<String> getRoles() {
            return null;
        }

        @Override
        public Collection<String> getStringPermissions() {
            return null;
        }

        @Override
        public Collection<Permission> getObjectPermissions() {
            Collection<Permission> permissions = new ArrayList<Permission>();
            KeyValuePermission keyValuePermission = new KeyValuePermission("FineAccessControls");
            keyValuePermission.addValue("A");
            keyValuePermission.addValue("B");
            KeyValuePermission keyValuePermission1 = new KeyValuePermission("CountryOfAffiliation");
            keyValuePermission1.addValue("GBR");
            permissions.add(keyValuePermission);
            permissions.add(keyValuePermission1);
            return permissions;
        }
    });
    Collection<org.apache.shiro.realm.Realm> realms = new ArrayList<org.apache.shiro.realm.Realm>();
    realms.add(realm);

    DefaultSecurityManager manager = new DefaultSecurityManager();
    manager.setRealms(realms);

    SimplePrincipalCollection principalCollection = new SimplePrincipalCollection(new Principal() {
        @Override
        public String getName() {
            return "testuser";
        }
    }, realm.getName());

    Subject subject = new MockSubject(manager, principalCollection);
    properties.put(SecurityConstants.SECURITY_SUBJECT, subject);
    request.setProperties(properties);

    incomingResponse = new QueryResponseImpl(request);

    ResultImpl result1 = new ResultImpl(getHighMetacard());
    ResultImpl result2 = new ResultImpl(getLowMetacard());
    ResultImpl result3 = new ResultImpl(getLowMetacardReleaseToOne());
    incomingResponse.addResult(result1, false);
    incomingResponse.addResult(result2, false);
    incomingResponse.addResult(result3, true);

    ((SimpleAuthzRealm) realm).setMatchAllMappings(Arrays.asList("FineAccessControls=rule"));
    ((SimpleAuthzRealm) realm).setMatchOneMappings(Arrays.asList("CountryOfAffiliation=country"));
}