Как настроить Grails 3 + Spring Security для использования нескольких точек входа, пользовательских доменов - PullRequest
3 голосов
/ 22 мая 2019

У меня возникают трудности с правильной настройкой безопасности Spring в эксперименте Grails 3 (https://github.com/davebrown1975/grails-multientrypoint-security) для использования двух отдельных доменов пользователей, в данном случае Montagues & Capulets. У каждого типа пользователей должна быть своя страница входа в систему, иограничения на то, что они могут или не могут получить доступ. Т.е. вошедший в Capulet не должен иметь возможность просматривать страницы Montagues и наоборот.

Таким образом, чтобы установить эти правила, у меня есть 2 типа различных пользователей, различные представления истраницы авторизации и пользовательские фильтры, провайдеры аутентификации и точки входа.

Однако текущее поведение, согласно моему GebSpec, заключается в том, что попытка вызова на защищенную страницу Montague перенаправляет не на страницу входа Montague, как предполагалось, а на подключаемые модули.Логин по умолчанию. Так что, возможно, проблема заключается в конфигурации фильтров, описанных ниже:

grails.plugin.springsecurity.filterChain.filterNames = [
   'securityContextPersistenceFilter', 'logoutFilter',
   'authenticationProcessingFilter',
   'rememberMeAuthenticationFilter', 'anonymousAuthenticationFilter',
   'exceptionTranslationFilter', 'filterInvocationInterceptor'
]

grails.plugin.springsecurity.filterChain.chainMap = [
    [pattern: '/assets/**',      filters: 'none'],
    [pattern: '/**/js/**',       filters: 'none'],
    [pattern: '/**/css/**',      filters: 'none'],
    [pattern: '/**/images/**',   filters: 'none'],
    [pattern: '/**/favicon.ico', filters: 'none'],

  [pattern: '/capulets/**',    filters: 'securityContextPersistenceFilter,logoutFilter,capuletsAuthenticationFilter,' +
           'authenticationProcessingFilter,rememberMeAuthenticationFilter,anonymousAuthenticationFilter,' +
           'exceptionTranslationFilter,filterInvocationInterceptor'],

  [pattern: '/montagues/**',   filters: 'securityContextPersistenceFilter,logoutFilter,montaguesAuthenticationFilter,' +
           'authenticationProcessingFilter,rememberMeAuthenticationFilter,anonymousAuthenticationFilter,' +
           'exceptionTranslationFilter,filterInvocationInterceptor'],

    [pattern: '/**',             filters: 'JOINED_FILTERS,-montaguesAuthenticationFilter,-capuletsAuthenticationFilter']
]

Любая помощь по этому вопросу будет чрезвычайно признателен.

Спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...