Changes between Initial Version and Version 1 of Security


Ignore:
Timestamp:
09/03/25 23:48:20 (2 days ago)
Author:
222004
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Security

    v1 v1  
     1== **Spring Security**
     2Извадок од нашиот security config:\\
     3{{{
     4
     5@Bean
     6public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
     7    http
     8        .csrf(AbstractHttpConfigurer::disable)
     9        .authorizeHttpRequests(reg -> reg
     10            .requestMatchers("/", "/login", "/register", "/error",
     11                             "/css/**", "/js/**", "/uploads/**", "/logo.png", "catalog").permitAll()
     12            .requestMatchers("/admin/branded-medicines/**").hasAnyRole("ADMIN","PHARMACIST")
     13            .requestMatchers("/admin/**").hasRole("ADMIN")
     14            .requestMatchers("/pharmacist/**").hasRole("PHARMACIST")
     15            .anyRequest().permitAll()
     16        )
     17        .formLogin(login -> login
     18            .loginPage("/login")
     19            .defaultSuccessUrl("/profile", true)
     20            .permitAll()
     21        )
     22        .logout(logout -> logout
     23            .logoutUrl("/logout")
     24            .logoutSuccessUrl("/login?logout")
     25            .permitAll()
     26        )
     27        .sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED));
     28
     29    return http.build();
     30}
     31
     32
     33}}}
     34
     35Админ рутите (/admin/*) се достапни само за корисници кои се ADMIN, делот за фармацевти (/pharmacist/*) само за PHARMACIST, а клиентски функционалности се ограничуваат по потреба за CLIENT.\\
     36Останатите јавни рути се permitAll, а чувствителните се заштитени со hasRole/hasAnyRole (на пр. /admin/branded-medicines/* за ADMIN или PHARMACIST).
     37Автентикацијата е остварена преку custom login форма и redirect на /profile при успешна автентикација.