Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
 
4 / 4 / 4
Регистрация: 07.02.2008
Сообщений: 350
1

Sping Security как работает авторизация

01.07.2016, 13:33. Просмотров 483. Ответов 1
Метки нет (Все метки)

Добрый день. Не могу не как понять как работает авторизация пользователя.

Есть база в Postgres c 2-мя таблицами.
users : id/login/name/password
и
users_role : id/role_name/login

Есть контролер:
Java
1
2
3
4
@RequestMapping(value = "login", method = RequestMethod.GET)
public String getLoginPage(Model model){
return"login";
}
страница с формой:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div class="container" style="width: 300px">
<form class="form-1" method="post" action="${pageContext.request.contextPath}/login">
<p class="field">
<input type="text" name="username" id="username" placeholder="Логин">
<i class="icon-user icon-large"></i>
</p>
<p class="field">
<input type="password" name="password" id="password" placeholder="Пароль">
<i class="icon-lock icon-large"></i>
</p>
<p class="submit">
<input type="submit" name="submit"></i></input>
</p>
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
</form>
</div>
Настроки SpringSecurity
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@Autowired
UserDetailsService userDetailsService;
 
@Autowired
public void configAuthentication(AuthenticationManagerBuilder auth)throws Exception{
        auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
        }
 
@Bean(name = "passwordEncoder")
public PasswordEncoder passwordEncoder(){
        return new BCryptPasswordEncoder();
        }
@Override
protected void configure(HttpSecurity http)throws Exception{
        http.authorizeRequests()
        .antMatchers("/map/rest/hello/**").access("hasRole('ADMIN')")
        .antMatchers("/confidential/**").access("hasRole('SUPERADMIN')")
        .and().formLogin().loginPage("/login").permitAll().
        defaultSuccessUrl("/",false)
        .and().csrf().disable().
        sessionManagement().maximumSessions(1).sessionRegistry(sessionRegistry()).and().and()
        .logout().
        logoutUrl("/logout").logoutSuccessUrl("/").
        invalidateHttpSession(true).deleteCookies();
        }
@Bean
public UserDetailsService userDetailsService(){
        JdbcDaoImpl jdbcImpl=new JdbcDaoImpl();
        jdbcImpl.setDataSource(hibernateConfig.dataSource());
        jdbcImpl.setUsersByUsernameQuery(environment.getRequiredProperty("usersByQuery"));
        jdbcImpl.setAuthoritiesByUsernameQuery(environment.getRequiredProperty("rolesByQuery"));
        return jdbcImpl;
        }
и запрос для UserDetailsService

Код
usersByQuery=Select login, password, true from users where login = ?
rolesByQuery="Select login,role_name from users_role where login = ?"
Вроде все правильно, но не работает. И если честно не очень понимаю, как значение попадает вместо "?" при запросе к базе данных? Кто может обьясните, что происходит после заполения формы для логина?

так, ощибку нашел. это были лишние кавычки
Но остается вопрос как вместо "?" получается подстановка логина из формы?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.07.2016, 13:33
Ответы с готовыми решениями:

Авторизация не работает при включенной CSRF защите Spring Security
Здравствуйте вот столкнулся с такой проблемой при попытке авторизации получал ответ 403 forbidden и...

Авторизация в spring security
Всем привет! Аутентификация пользователей происходит на отдельном севере. Он дает клиенту токен,...

Maven не загружает плагины Sping
Решил повторить шаги по вот этому гайду, основываясь на этом видео...

Авторизация с curl работает, как получить страницу в переменную?
есть скрипт some.php вначале в нем идет авторизация на каком-то сайте через curl, и проходит...

1
4 / 4 / 4
Регистрация: 07.02.2008
Сообщений: 350
03.07.2016, 09:59  [ТС] 2
Всем спасибо, особенно за редактирование Все заработало.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.07.2016, 09:59

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Не работает Spring Security
Имеется приложение в которое пытаюсь добавить Spring Security. Действия: 1. Добавил в проект...

Не работает Spring security
пытаюсь реализовать spring-security. При аутентификации я обращаюсь к базе данных, где проверяю...

Работает ли Kaspersky Internet Security?
Здравствуйте. У меня на ноутбуке Windows 8.1. Время от времени значок возникает ситуация,...

Почему не работает Bcrypt в Spring Security
В Security Config вроде написал код для Bcrypt, но Томкат ругается @Configuration...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.