Как администрировать роль и привилегии с помощью Spring Security? - PullRequest
0 голосов
/ 22 января 2020

Я новичок весной, я использую весеннюю безопасность. Я хочу реализовать несколько ролей и представление, чтобы создать больше ролей и назначить ему несколько представлений и несколько разрешений для каждого представления (CRUD).

У меня есть метод configure (HttpSecurity http) в метке Клейса с аннотацией @Configuration для текущей роли в базе данных.

for (RolePrivilegeConfig rolePrivilegeConfig : rolePrivilegesConfig) {

        http.authorizeRequests()
        .antMatchers(HttpMethod.GET,rolePrivilegeConfig.getResource())
        .hasRole(rolePrivilegeConfig.getRoleName())
        .antMatchers(HttpMethod.POST,rolePrivilegeConfig.getResource())
        .hasRole(rolePrivilegeConfig.getRoleName());                         
    } http
      .authorizeRequests()
      .antMatchers("/login","login","/resources/**").permitAll()
      .anyRequest()           
      .authenticated()
      .and()
      .formLogin()
      .loginProcessingUrl("/login")
      .loginPage("/login")
      .permitAll()
      .failureUrl("/login?error=true")
      .and()
      .logout().
      logoutRequestMatcher(new AntPathRequestMatcher("/logout")).
      and()
      .logout().deleteCookies("JSESSIONID")        
      .logoutSuccessUrl("/login")
      .and()    
      .rememberMe()
      .tokenRepository(persistentTokenRepository(dataSource))
     .userDetailsService(userDecoratorDetailsService);  

До теперь он отлично работает для текущей роли, но в случае создания новой роли мне нужно перезапустить приложение для применения новой конфигурации, есть ли способ для повторного выполнения конфигурации без перезапуска сервера?

С другой стороны, я хочу реализовать разрешения для CRUD в каждом представлении, но я имею в виду единственный способ сохранить другую таблицу для сохранения: представление, роль и каждое разрешенное действие, загрузить В сеансе все эти разрешения зависят от роли входа пользователя в систему и на внешней стороне реализуют какой-то способ скрыть действия, которые текущий пользователь не разрешает каждый раз, когда пользователь входит в каждое представление, и проверять на стороне сервера тоже.

Большое спасибо за вашу помощь.

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