Для этого вам нужно использовать Spring Security. Прежде всего вам нужно создать две роли TEACHER
и STUDENT
. Затем, исходя из ваших требований, вы дадите доступ к методам контроллера внутри функции configure
. Функция configure должна находиться внутри SecurityConfig. java. А также аннотация @EnableWebSecurity
должна быть поверх класса. Если вы читаете имя пользователя и пароль из базы данных, то внутри функции configAuthentication
вы проверите.
Например
@Override
protected void configure(HttpSecurity http) throws Exception{
http.authorizeRequests()
.antMatchers("/resources/**").permitAll()
.antMatchers("/").hasAnyRole("STUDENT","TEACHER")
.antMatchers("/add_friends").hasAnyRole( "TEACHER")
.antMatchers("/showAllData").hasAnyRole( "TEACHER")
.antMatchers("/show_users").hasAnyRole( "TEACHER")
.and().formLogin()
.loginPage("/login")
.usernameParameter("username")
.passwordParameter("password")
.successForwardUrl("/welcome_page")
.permitAll()
.and()
.logout()
.permitAll()
.and()
.exceptionHandling().accessDeniedPage("/accessDenied");
http.csrf().disable();
}
@Autowired
public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception{
auth.jdbcAuthentication().dataSource(dataSource)
.usersByUsernameQuery("select username,password, enabled from core_users where username=?")
.authoritiesByUsernameQuery("select username, authority from core_authorities where username=?");
}