2016-07-15 7 views
1

こんにちは私は春からのアクセスが拒否されています。誰かは、ユーザーが2つの当局春のセキュリティが正しい資格情報の403 inspiteを与えている

を持っていることを見ることができるの下に、私は、ログのように春4.3

私のコントローラ

@RestController 
@RequestMapping (value = "/api/secured/resource/school") 
@Secured ({ ApplicationConstants.Role.SYSTEM_ADMIN, ApplicationConstants.Role.SCHOOL_ADMIN }) 
public class SchoolController 
{ 

    @Autowired 
    private SchoolService schoolService; 

    @PostMapping (consumes = "application/json") 
    @Secured ({ ApplicationConstants.Role.SYSTEM_ADMIN }) 
    public @ResponseBody ResponsePayload createSchool (HttpServletRequest request, @RequestBody School school) 
      throws ServiceException 
{ 
} 

interface Role 
    { 

     String SYSTEM_ADMIN = "SYSTEM_ADMIN"; 

     String SCHOOL_ADMIN = "SCHOOL_ADMIN"; 
    } 

を使用しています。この


で私を助けてくださいSYSTEM_USER、SYSTEM_ADMINは依然として私にアクセス拒否を与えます

Sprin G設定

<http pattern="/static/**" security="none" /> 
    <http use-expressions="true"> 
     <intercept-url pattern="/app/**" access="isAuthenticated()" /> 
     <form-login login-page="/loginPage" 
      authentication-success-handler-ref="mySuccessHandler" 
      authentication-failure-handler-ref="myFailureHandler" /> 
     <logout logout-success-url="/loginPage" /> 
     <custom-filter ref="loginFilter" after="FIRST" /> 
     <csrf disabled="true" /> 
    </http> 

2016年7月15日16:03:12525 DEBUGはMethodSecurityInterceptor:348 - 以前に認証:org.springframew[email protected]7670236f:プリンシパル:SystemUser【はuserId = 1、名前=アドミニストレータ、email = [email protected]、mobilePhone = 9999999999、status = ACTIVE];資格:[プロテクト];認証済み:真;詳細:org.sprin[email protected]0:RemoteIpAddress:0:0:0:0:0:0:0:1; SessionId:1h5x6yxtd1m0y1gs4h5vfo1yl; 許可された権限:SYSTEM_USER、SYSTEM_ADMIN 2016-07-15 16:03:12,525 DEBUG肯定ベース:66 - 投票者:[email protected]、戻り値:0 2016-07-15 16 :03:12,527 DEBUG AffirmativeBased:66 - 投票者:[email protected]4efc、戻り値:0 2016-07-15 16:03:12,529 DEBUG ExceptionHandlerExceptionResolver:133 - ハンドラからの例外の解決[public com.tepachi.web.response.ResponsePayload com.tepachi.web.controller.SchoolController.createSchool(javax.servlet.http.HttpServletRequest、com.tepachi.db.entities.user.School)は、com.tepachi.exception.ServiceExceptionをスローします。 :org.springframework.security.access.AccessDeniedException:アクセスが拒否されました

答えて

0

問題は春4以降で、付与された権限にROLE_を付加しています。

hasRoleも([役割]):現在のプリンシパルが、指定された役割を持っている場合はtrueを返します 。デフォルトでは、指定されたロールが 'ROLE_'で始まらない場合、追加されます。これは、DefaultWebSecurityExpressionHandlerのdefaultRolePrefixを変更することでカスタマイズできます。

詳しい情報はここで見つけることができ Spring Doc

関連する問題