Red Hat Training

A Red Hat training course is available for Red Hat Fuse

303.4. 認証および認可エラーの処理

SpringSecurityAuthorizationPolicy で認証または認可が失敗した場合、CamelAuthorizationException が出力されます。これは、Exception Clause などの Camel の標準的な例外処理メソッドを使用して処理できます。CamelAuthorizationException には、例外を出力したポリシーの ID への参照が含まれているため、ポリシーと例外のタイプに基づいてエラーを処理できます。

<onException>
  <exception>org.springframework.security.authentication.AccessDeniedException</exception>
  <choice>
    <when>
      <simple>${exception.policyId} == 'user'</simple>
      <transform>
        <constant>You do not have ROLE_USER access!</constant>
      </transform>
    </when>
    <when>
      <simple>${exception.policyId} == 'admin'</simple>
      <transform>
        <constant>You do not have ROLE_ADMIN access!</constant>
      </transform>
    </when>
  </choice>
</onException>