Example usage for org.springframework.security.oauth2.provider.approval Approval Approval

List of usage examples for org.springframework.security.oauth2.provider.approval Approval Approval

Introduction

In this page you can find the example usage for org.springframework.security.oauth2.provider.approval Approval Approval.

Prototype

public Approval(String userId, String clientId, String scope, Date expiresAt, ApprovalStatus status) 

Source Link

Usage

From source file:com.cedac.security.oauth2.provider.approval.AbstractTestApprovalStore.java

@Test
public void testAddDifferentScopes() {
    assertTrue(addApprovals(// w  w w.j a  va  2s  .com
            Arrays.<Approval>asList(new Approval("user", "client", "read", 1000, ApprovalStatus.APPROVED),
                    new Approval("user", "client", "write", 1000, ApprovalStatus.APPROVED))));
    assertEquals(2, getApprovalStore().getApprovals("user", "client").size());
}

From source file:com.cedac.security.oauth2.provider.approval.AbstractTestApprovalStore.java

@Test
public void testIdempotentAdd() {
    assertTrue(addApprovals(//from  ww w  . j a v  a  2 s  . c o  m
            Arrays.<Approval>asList(new Approval("user", "client", "read", 1000, ApprovalStatus.APPROVED),
                    new Approval("user", "client", "write", 1000, ApprovalStatus.APPROVED))));
    assertTrue(addApprovals(
            Arrays.<Approval>asList(new Approval("user", "client", "read", 1000, ApprovalStatus.APPROVED),
                    new Approval("user", "client", "write", 1000, ApprovalStatus.APPROVED))));
    assertEquals(2, getApprovalStore().getApprovals("user", "client").size());
}

From source file:com.cedac.security.oauth2.provider.approval.MongoApprovalStoreTests.java

@Test
public void testRevokeByExpiry() {
    fixture.setHandleRevocationsAsExpiry(true);
    Approval approval1 = new Approval("user", "client", "read", 10000, Approval.ApprovalStatus.APPROVED);
    Approval approval2 = new Approval("user", "client", "write", 10000, Approval.ApprovalStatus.APPROVED);
    assertTrue(getApprovalStore().addApprovals(Arrays.<Approval>asList(approval1, approval2)));
    getApprovalStore().revokeApprovals(Arrays.asList(approval1));
    assertEquals(2, getApprovalStore().getApprovals("user", "client").size());
    /*assertEquals(new Integer(1), new JdbcTemplate(db)
                .queryForObject("SELECT COUNT(*) from oauth_approvals where userId='user' AND expiresAt < ?",
                        Integer.class, new Date(System.currentTimeMillis() + 1000)));*/
}

From source file:com.cedac.security.oauth2.provider.approval.AbstractTestApprovalStore.java

@Test
public void testAddDifferentClients() {
    assertTrue(addApprovals(/*  w ww  . ja  v  a 2 s  . co  m*/
            Arrays.<Approval>asList(new Approval("user", "client", "read", 1000, ApprovalStatus.APPROVED),
                    new Approval("user", "other", "write", 1000, ApprovalStatus.APPROVED))));
    assertEquals(1, getApprovalStore().getApprovals("user", "client").size());
    assertEquals(1, getApprovalStore().getApprovals("user", "other").size());
}

From source file:com.cedac.security.oauth2.provider.approval.AbstractTestApprovalStore.java

@Test
public void testVanillaRevoke() {
    Approval approval1 = new Approval("user", "client", "read", 1000, ApprovalStatus.APPROVED);
    Approval approval2 = new Approval("user", "client", "write", 1000, ApprovalStatus.APPROVED);
    assertTrue(addApprovals(Arrays.<Approval>asList(approval1, approval2)));
    getApprovalStore().revokeApprovals(Arrays.asList(approval1));
    assertEquals(getExpectedNumberOfApprovalsAfterRevoke(),
            getApprovalStore().getApprovals("user", "client").size());
}

From source file:org.springframework.security.oauth2.provider.approval.ApprovalStoreUserApprovalHandler.java

/**
 * Requires the authorization request to be explicitly approved, including all individual scopes, and the user to be
 * authenticated. A scope that was requested in the authorization request can be approved by sending a request
 * parameter <code>scope.&lt;scopename&gt;</code> equal to "true" or "approved" (otherwise it will be assumed to
 * have been denied). The {@link ApprovalStore} will be updated to reflect the inputs.
 * /*w w  w .j a  v  a2s .  c  o m*/
 * @param authorizationRequest The authorization request.
 * @param userAuthentication the current user authentication
 * 
 * @return An approved request if all scopes have been approved by the current user.
 */
public AuthorizationRequest updateAfterApproval(AuthorizationRequest authorizationRequest,
        Authentication userAuthentication) {
    // Get the approved scopes
    Set<String> requestedScopes = authorizationRequest.getScope();
    Set<String> approvedScopes = new HashSet<String>();
    Set<Approval> approvals = new HashSet<Approval>();

    Date expiry = computeExpiry();

    // Store the scopes that have been approved / denied
    Map<String, String> approvalParameters = authorizationRequest.getApprovalParameters();
    for (String requestedScope : requestedScopes) {
        String approvalParameter = scopePrefix + requestedScope;
        String value = approvalParameters.get(approvalParameter);
        value = value == null ? "" : value.toLowerCase();
        if ("true".equals(value) || value.startsWith("approve")) {
            approvedScopes.add(requestedScope);
            approvals.add(new Approval(userAuthentication.getName(), authorizationRequest.getClientId(),
                    requestedScope, expiry, ApprovalStatus.APPROVED));
        } else {
            approvals.add(new Approval(userAuthentication.getName(), authorizationRequest.getClientId(),
                    requestedScope, expiry, ApprovalStatus.DENIED));
        }
    }
    approvalStore.addApprovals(approvals);

    boolean approved;
    authorizationRequest.setScope(approvedScopes);
    if (approvedScopes.isEmpty() && !requestedScopes.isEmpty()) {
        approved = false;
    } else {
        approved = true;
    }
    authorizationRequest.setApproved(approved);
    return authorizationRequest;
}