Search in sources :

Example 11 with Scope

use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.

the class UserConsentServiceImpl method computeExpiry.

private Date computeExpiry(Map<String, ApplicationScopeSettings> scopeApprovals, String scope, List<String> parameterizedScopes) {
    final boolean isParameterizedScope = isParameterizedScope(parameterizedScopes, scope);
    Calendar expiresAt = Calendar.getInstance();
    // if client has approval settings, apply them
    if (scopeApprovals != null) {
        // test scope using strict match
        if (scopeApprovals.containsKey(scope)) {
            expiresAt.add(Calendar.SECOND, scopeApprovals.get(scope).getScopeApproval());
            return expiresAt.getTime();
        }
        // test parameterized scope
        if (isParameterizedScope) {
            final String parameterizedScope = getScopeBase(scope);
            if (scopeApprovals.containsKey(parameterizedScope) && scopeManager.isParameterizedScope(parameterizedScope)) {
                expiresAt.add(Calendar.SECOND, scopeApprovals.get(parameterizedScope).getScopeApproval());
                return expiresAt.getTime();
            }
        }
    }
    // if domain has approval settings, apply them
    Scope domainScope = scopeService.findByKey(isParameterizedScope ? getScopeBase(scope) : scope);
    if (domainScope != null && domainScope.getExpiresIn() != null) {
        expiresAt.add(Calendar.SECOND, domainScope.getExpiresIn());
        return expiresAt.getTime();
    }
    // default approval time
    if (approvalExpirySeconds == -1) {
        // use default of 1 month
        expiresAt.add(Calendar.MONTH, 1);
    } else {
        expiresAt.add(Calendar.SECOND, approvalExpirySeconds);
    }
    return expiresAt.getTime();
}
Also used : ParameterizedScopeUtils.isParameterizedScope(io.gravitee.am.gateway.handler.oauth2.service.utils.ParameterizedScopeUtils.isParameterizedScope) Scope(io.gravitee.am.model.oauth2.Scope)

Example 12 with Scope

use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.

the class UserConsentServiceImpl method getConsentInformation.

@Override
public Single<List<Scope>> getConsentInformation(Set<String> consent) {
    return scopeService.getAll().map(scopes -> {
        List<Scope> requestedScopes = new ArrayList<>();
        for (String requestScope : consent) {
            Scope requestedScope = scopes.stream().filter(scope -> scope.getKey().equalsIgnoreCase(requestScope)).findAny().orElse(new Scope(requestScope));
            requestedScopes.add(requestedScope);
        }
        return requestedScopes;
    });
}
Also used : ParameterizedScopeUtils.isParameterizedScope(io.gravitee.am.gateway.handler.oauth2.service.utils.ParameterizedScopeUtils.isParameterizedScope) Scope(io.gravitee.am.model.oauth2.Scope)

Example 13 with Scope

use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.

the class ScopeRepositoryTest method testFindByDomain.

@Test
public void testFindByDomain() {
    // create scope
    Scope scope = new Scope();
    scope.setName("testName");
    scope.setDomain("testDomain");
    scope.setClaims(Arrays.asList("claim1", "claim2"));
    scopeRepository.create(scope).blockingGet();
    // fetch scopes
    TestObserver<Page<Scope>> testObserver = scopeRepository.findByDomain("testDomain", 0, Integer.MAX_VALUE).test();
    testObserver.awaitTerminalEvent();
    testObserver.assertComplete();
    testObserver.assertNoErrors();
    testObserver.assertValue(scopes -> scopes.getData().size() == 1);
    testObserver.assertValue(scopes -> scopes.getData().iterator().next().getClaims().size() == 2);
}
Also used : Scope(io.gravitee.am.model.oauth2.Scope) Page(io.gravitee.am.model.common.Page) Test(org.junit.Test) AbstractManagementTest(io.gravitee.am.repository.management.AbstractManagementTest)

Example 14 with Scope

use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.

the class ScopeRepositoryTest method testDelete.

@Test
public void testDelete() {
    // create scope
    Scope scope = new Scope();
    scope.setName("testName");
    Scope scopeCreated = scopeRepository.create(scope).blockingGet();
    // fetch scope
    TestObserver<Scope> testObserver = scopeRepository.findById(scopeCreated.getId()).test();
    testObserver.awaitTerminalEvent();
    testObserver.assertComplete();
    testObserver.assertNoErrors();
    testObserver.assertValue(s -> s.getName().equals(scope.getName()));
    // delete scope
    TestObserver testObserver1 = scopeRepository.delete(scopeCreated.getId()).test();
    testObserver1.awaitTerminalEvent();
    // fetch scope
    scopeRepository.findById(scopeCreated.getId()).test().assertEmpty();
}
Also used : Scope(io.gravitee.am.model.oauth2.Scope) TestObserver(io.reactivex.observers.TestObserver) Test(org.junit.Test) AbstractManagementTest(io.gravitee.am.repository.management.AbstractManagementTest)

Example 15 with Scope

use of org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.CreateDataChangeEventSubscriptionInput1.Scope in project gravitee-access-management by gravitee-io.

the class ScopeRepositoryTest method testSearch_wildcard.

@Test
public void testSearch_wildcard() {
    String scopeName = "testName";
    Scope scope = new Scope();
    scope.setDomain("mydomain");
    scope.setName("testName");
    scope.setKey("testName");
    scope.setClaims(Arrays.asList("claim1", "claim2"));
    Scope scopeCreated = scopeRepository.create(scope).blockingGet();
    TestObserver<Page<Scope>> testObserver = scopeRepository.search(scopeCreated.getDomain(), "*" + scopeName + "*", 0, Integer.MAX_VALUE).test();
    testObserver.awaitTerminalEvent();
    testObserver.assertComplete();
    testObserver.assertNoErrors();
    testObserver.assertValue(s -> s.getData().size() == 1);
    testObserver.assertValue(scopes -> scopes.getData().iterator().next().getClaims().size() == 2);
}
Also used : Scope(io.gravitee.am.model.oauth2.Scope) Page(io.gravitee.am.model.common.Page) Test(org.junit.Test) AbstractManagementTest(io.gravitee.am.repository.management.AbstractManagementTest)

Aggregations

Scope (io.gravitee.am.model.oauth2.Scope)63 Test (org.junit.Test)43 TestObserver (io.reactivex.observers.TestObserver)25 Event (io.gravitee.am.model.common.event.Event)16 Page (io.gravitee.am.model.common.Page)15 Domain (io.gravitee.am.model.Domain)10 NewScope (io.gravitee.am.service.model.NewScope)9 Autowired (org.springframework.beans.factory.annotation.Autowired)9 AbstractManagementTest (io.gravitee.am.repository.management.AbstractManagementTest)8 Maybe (io.reactivex.Maybe)8 Single (io.reactivex.Single)8 RandomString (io.gravitee.am.common.utils.RandomString)7 ScopeRepository (io.gravitee.am.repository.management.api.ScopeRepository)7 Completable (io.reactivex.Completable)7 JerseySpringTest (io.gravitee.am.management.handlers.management.api.JerseySpringTest)6 ApplicationOAuthSettings (io.gravitee.am.model.application.ApplicationOAuthSettings)6 Observable (io.reactivex.Observable)6 User (io.gravitee.am.identityprovider.api.User)5 ReferenceType (io.gravitee.am.model.ReferenceType)5 ApplicationScopeSettings (io.gravitee.am.model.application.ApplicationScopeSettings)5