Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2015 the original author or authors
   *
   * 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
   *
   * 	http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.clusterra.iam.core.protect;
 
 import  org.springframework.beans.factory.annotation.Autowired;
 import  org.springframework.stereotype.Component;
 
 import java.util.List;

Author(s):
Alexander Fyodorov
Denis Kuchugurov
 
 @Component
 public class ProtectedInterceptor implements Ordered {
 
     @Autowired
     private IdentityTracker identityTracker;
 
     @Autowired
 
     @Autowired
 
     private int order = 1;
 
 
     @Before("@within(aProtected)")
     public void forType(Protected aProtectedthrows Throwable {
         checkAuthority(aProtected);
     }
 
     @Before("@annotation(aProtected)")
     public void forMethod(Protected aProtectedthrows Throwable {
         checkAuthority(aProtected);
     }
 
     private void checkAuthority(Protected aProtectedthrows NotAuthenticatedException {
         UserId userId = .currentUser();
 
         if (aProtected.actions() == null) {
             checkAction(userIdaProtected.actions());
         } else {
             checkRole(userIdaProtected.roles());
         }
     }
 
     private void checkAction(UserId userIdString[] actionNames) {
         for (String actionName : actionNames) {
             if (.canExecute(userIdactionName)) {
                 return;
             }
         }
         throw new NotAuthorizedException(actionNames);
     }
 
     private void checkRole(UserId userIdString[] roleNames) {
         List<RoleDescriptorroles = .findRolesByUser(userId);
         for (RoleDescriptor role : roles) {
             if (Arrays.asList(roleNames).contains(role.getRoleName())) {
                 return;
             }
         }
         throw new NotAuthorizedException(roleNames);
     }


    
Allow overriding of the default order.

Parameters:
order aspect order
 
     public void setOrder(int order) {
        this. = order;
    }
    @Override
    public int getOrder() {
        return ;
    }
New to GrepCode? Check out our FAQ X