Version 1 (modified by 2 days ago) ( diff ) | ,
---|
Spring Security
Извадок од нашиот security config:
@Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(reg -> reg .requestMatchers("/", "/login", "/register", "/error", "/css/**", "/js/**", "/uploads/**", "/logo.png", "catalog").permitAll() .requestMatchers("/admin/branded-medicines/**").hasAnyRole("ADMIN","PHARMACIST") .requestMatchers("/admin/**").hasRole("ADMIN") .requestMatchers("/pharmacist/**").hasRole("PHARMACIST") .anyRequest().permitAll() ) .formLogin(login -> login .loginPage("/login") .defaultSuccessUrl("/profile", true) .permitAll() ) .logout(logout -> logout .logoutUrl("/logout") .logoutSuccessUrl("/login?logout") .permitAll() ) .sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)); return http.build(); }
Админ рутите (/admin/*) се достапни само за корисници кои се ADMIN, делот за фармацевти (/pharmacist/*) само за PHARMACIST, а клиентски функционалности се ограничуваат по потреба за CLIENT.
Останатите јавни рути се permitAll, а чувствителните се заштитени со hasRole/hasAnyRole (на пр. /admin/branded-medicines/* за ADMIN или PHARMACIST).
Автентикацијата е остварена преку custom login форма и redirect на /profile при успешна автентикација.
Note:
See TracWiki
for help on using the wiki.