С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481
1

Remember me(Spring Security)

05.08.2016, 11:14. Показов 1955. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, возник вопрос как реализовать запоминание, что бы при входе на сайт не запрашивало постоянно пароль
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
 
    @Autowired
    private UserDetailsService userDetailsService;
 
    @Autowired
    private UserRepository userRepository;
 
    @Autowired
    private DataSource dataSource;
 
    @Override
        protected void configure(final HttpSecurity httpSecurity) throws Exception {
            httpSecurity
                    .authorizeRequests()
                    .antMatchers(HttpMethod.GET, "/registration")
                    .permitAll()
                    .antMatchers(HttpMethod.POST, "/registration")
                    .permitAll()
                    .antMatchers("/css/**", "/js/**", "/img/**")
                    .permitAll()
                    .antMatchers("/cars/**")
                    .permitAll()
                    .antMatchers("/yachts/**")
                    .permitAll()
                    .antMatchers("/administrationNotSleeps")
                    .permitAll()
                    .antMatchers("/registrationPage")
                    .permitAll()
                    .antMatchers("/okYouDoIt")
                    .permitAll()
                    .antMatchers("/whisky/**")
                    .permitAll()
                    .antMatchers("/index")
                    .permitAll()
                    .antMatchers("/backgrounds/**")
                    .permitAll()
                    .antMatchers("/name_duplication")
                    .permitAll()
                    .anyRequest().authenticated()
                    .and()
                    .formLogin()
                    .loginPage("/login")
                    .defaultSuccessUrl("/index")
                    .passwordParameter("password")
                    .permitAll()
                    //благодаря этой строчке при logout кидает на индекс, если ее удрать будет кидать на logout
                    .and().logout().logoutSuccessUrl("/index")
                    .and()
                    .httpBasic()
                    .and()
                    .csrf().disable();
 
                httpSecurity.rememberMe().rememberMeParameter("remember-me")
                .rememberMeCookieName("my-remember-me")
                .tokenRepository(persistentTokenRepository()).tokenValiditySeconds(86400);
 
 
            httpSecurity.addFilterBefore(authenticationFilter(), UsernamePasswordAuthenticationFilter.class);
        }
 
        @Autowired
        public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
 
            auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
        }
 
        @Bean
        public PasswordEncoder passwordEncoder() {
            return new MyPasswordEncoder();
        }
 
 
    public IsAccountNonExpiredFilter authenticationFilter() throws Exception {
        IsAccountNonExpiredFilter authFilter = new IsAccountNonExpiredFilter();
        authFilter.setRequiresAuthenticationRequestMatcher(new AntPathRequestMatcher("/login","POST"));
 
        authFilter.setAuthenticationManager(super.authenticationManager());
        authFilter.setAuthenticationSuccessHandler(new SimpleUrlAuthenticationSuccessHandler("/index"));
        authFilter.setAuthenticationFailureHandler(new SimpleUrlAuthenticationFailureHandler("/login?error"));
        authFilter.setUsernameParameter("username");
        authFilter.setPasswordParameter("password");
        authFilter.setUserRepository(userRepository);
        return authFilter;
    }
 
    @Bean
    public PersistentTokenRepository persistentTokenRepository() {
        JdbcTokenRepositoryImpl tokenRepository = new JdbcTokenRepositoryImpl();
        tokenRepository.setDataSource(dataSource);
        return tokenRepository;
    }
 
}
Если это пишется не тут расскажите теоретически как это делается начну и буду по ходу вопросы задавать
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.08.2016, 11:14
Ответы с готовыми решениями:

Spring vanilla + JPA - service `remember me`
А что если стандартная конфигурация не подходит и нужно уменьшить или увеличить время действия...

Jetty embedded + Spring MVC + Spring Security
Добрый день. По роду работы приходилось писать на JavaSE, в том числе и сложные клиент/серверные...

Spring. Тесты и Spring-security
Вопрос из области почему так. Есть у меня такой вот тест: @ContextConfiguration(locations =...

Spring Security
Добрый день. Использую SpringSecurity: protected void configure(HttpSecurity http) throws...

24
3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481
21.08.2016, 16:48  [ТС] 21
Author24 — интернет-сервис помощи студентам
т.е. если при нажатии на checkbox Remember me я не получаю куки это нужно искать в SecurityConfiguration ?
0
Эксперт Java
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
21.08.2016, 16:52 22
Цитата Сообщение от Huge Посмотреть сообщение
т.е. если при нажатии на checkbox Remember me я не получаю куки это нужно искать в SecurityConfiguration ?
Нет. Надо искать в дебаге. Смотреть кто этот куки устанавливает либо курить офф документацию и искать там.
0
3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481
22.08.2016, 10:13  [ТС] 23
Почитав кучу инфы, мне начало казаться, что у меня все работает, а я просто ступил.
Итак то, что понял:
Проверить Remember me можно только одним способом закрыв страницу и если при открытии ее вновь ты залогинен значит все работает.
Я пытался это сделать перезагрузкой проекта в Идее или же через LogOut наивно думая, что перезагрузив после этого страницу снова буду авторизирован
0
Эксперт Java
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
22.08.2016, 11:12 24
Цитата Сообщение от Huge Посмотреть сообщение
Я пытался это сделать перезагрузкой проекта в Идее или же через LogOut
при логауте само собой никакой ремембер ми не работает

при перезагрузке проекта зависит от того сохраняется ли ремембер ми в БД или нет. Если нет, то само собой тоже работать не будет.
0
3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481
22.08.2016, 14:19  [ТС] 25
KEKCoGEN вы мне каждый раз глаза то приоткрываете.
Честно говорю инфу про сохранение данных в persistent_logins я даже не видел при чтении литературы
0
22.08.2016, 14:19
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.08.2016, 14:19
Помогаю со студенческими работами здесь

Spring security c 3 на 4
Не знаю почему, но после того, как перешел на spring security 4 возникает проблема. Захожу на...

Spring security
Пытаюсь сделать spring MVC + spring security. При запуске пишет Type Exception Report Message No...

Thymeleaf spring security
Добрый день. Возник вопрос можно ли как-то совместить в одном div hasAuthority('user') и...

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

Icefaces + Spring Security
Ребят, такая проблема.... Решил я попробовать Icefaces. Все вроде бы нормально и понятно. Хочу...

Spring Security + галерея
Добрый вечер. Моя задача фотогалерея с доступом по авторизации. Авторизацию сделал, а вот с...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru