Преобразование конфигурации XML в конфигурацию Java в весенней безопасности для глобальной безопасности методов - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь преобразовать конфигурацию xml в конфигурацию java

Моя конфигурация XML выглядит следующим образом

<security:global-method-security secured-annotations="enabled" pre-post-annotations="enabled" access-decision-manager-ref="methodAccessDecisionManager">
        <security:expression-handler ref="methodExpressionHandler"/>
</security:global-method-security>

Я пытаюсь конвертировать с аннотацией

@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)

Но я не понимаю, как я могу конвертировать и использовать с глобальным методом безопасности access-decision-manager-ref="methodAccessDecisionManager" и <security:expression-handler ref="methodExpressionHandler"/>

1 Ответ

0 голосов
/ 10 мая 2018

Вы можете написать пользовательский метод настройки безопасности, см. Spring Security Reference :

5.10.2 GlobalMethodSecurityConfiguration

Иногда вам может потребоваться выполнить более сложные операции, чем это возможно с разрешением аннотации @EnableGlobalMethodSecurity. Для этих случаев вы можете расширить GlobalMethodSecurityConfiguration, гарантируя, что аннотация @EnableGlobalMethodSecurity присутствует в вашем подклассе. Например, если вы хотите указать пользовательский MethodSecurityExpressionHandler, вы можете использовать следующую конфигурацию:

@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MethodSecurityConfig extends GlobalMethodSecurityConfiguration {
  @Override
  protected MethodSecurityExpressionHandler createExpressionHandler() {
      // ... create and return custom MethodSecurityExpressionHandler ...
      return expressionHandler;
  }
}

Для получения дополнительной информации о методах, которые могут быть переопределены, см. GlobalMethodSecurityConfiguration Javadoc.

Ваш модифицированный код:

@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
public class MethodSecurityConfig extends GlobalMethodSecurityConfiguration {

    @Autowired
    private AccessDecisionManager accessDecisionManager;

    @Autowired
    private MethodSecurityExpressionHandler methodSecurityExpressionHandler;

    protected MethodSecurityExpressionHandler createExpressionHandler() {
        return methodSecurityExpressionHandler;
    }

    protected AccessDecisionManager accessDecisionManager() {
        return accessDecisionManager;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...