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 при успешна автентикација.
Last modified
5 weeks ago
Last modified on 09/23/25 14:06:46
Note:
See TracWiki
for help on using the wiki.
