Я новичок весной, я использую весеннюю безопасность. Я хочу реализовать несколько ролей и представление, чтобы создать больше ролей и назначить ему несколько представлений и несколько разрешений для каждого представления (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 в каждом представлении, но я имею в виду единственный способ сохранить другую таблицу для сохранения: представление, роль и каждое разрешенное действие, загрузить В сеансе все эти разрешения зависят от роли входа пользователя в систему и на внешней стороне реализуют какой-то способ скрыть действия, которые текущий пользователь не разрешает каждый раз, когда пользователь входит в каждое представление, и проверять на стороне сервера тоже.
Большое спасибо за вашу помощь.