Size: a a a

Spring Framework and more

2019 September 07

MS

Maksim Schennikov in Spring Framework and more
Коллеги, добрый день! Решил тут попробовать спринг-веброскет-стартер... и столкнулся с тем, что он устанавливает соединение с клиентом около 2 секунд. Далее все хорошо... но дело в том, что в момем случае важно именно быстрое соединение. Подскажите, может кто-то сталкивался с этим? Пробовал и через стомп и через свой хендлер...
источник

A

Aaa4 in Spring Framework and more
источник

A

Aaa4 in Spring Framework and more
Добрый день. У меня есть сущность многие к одному связанная(item к account) и она у меня почему то не удаляется :) (аккаунт записываю null). Причем в тесте она удаяляется нормально.
тест и контроллер:
https://gist.github.com/aaa4/7391d395762828fbe2ecd9c87a2897a7
модели:
акк:https://gist.github.com/aaa4/8703b6340ba1858a1177aa45eb3b98ad
итем: https://gist.github.com/aaa4/322c06c6feb76d7cda59e6bfff19b5e8
репо: https://gist.github.com/aaa4/c2cc6f17223d2a8bd2ff890859005d30
источник

C

Cyclone in Spring Framework and more
Нет, это неправильно.
Ко всему сайту можно заходить без авторизации.
А вот успешно авторизоваться - только определённой ролью.
источник

A

Aaa4 in Spring Framework and more
Cyclone
Нет, это неправильно.
Ко всему сайту можно заходить без авторизации.
А вот успешно авторизоваться - только определённой ролью.
а как роль передать неавторизованному пользователю?
Плз: вот есть форма авторизации, если к ней нельзя попасть с определенной ролью, то как юзер получит эту роль если он до авторизации в лучшем случае анонимный.
источник

A

Aaa4 in Spring Framework and more
Aaa4
Добрый день. У меня есть сущность многие к одному связанная(item к account) и она у меня почему то не удаляется :) (аккаунт записываю null). Причем в тесте она удаяляется нормально.
тест и контроллер:
https://gist.github.com/aaa4/7391d395762828fbe2ecd9c87a2897a7
модели:
акк:https://gist.github.com/aaa4/8703b6340ba1858a1177aa45eb3b98ad
итем: https://gist.github.com/aaa4/322c06c6feb76d7cda59e6bfff19b5e8
репо: https://gist.github.com/aaa4/c2cc6f17223d2a8bd2ff890859005d30
починил: у итема @ManyToMany (fetch EAGER) был
источник

ES

Evgeny Smagin in Spring Framework and more
Артем Артемович Артемовский
по пути /login будет отдавать файл templates/login.(html, ftl, jsp)
/login
источник

А

Артем Артемович Артемовский in Spring Framework and more
че?
источник
2019 September 08

A

Aaa4 in Spring Framework and more
Роман Нагаев
я хочу чтобы saveOrUpdate каскадом применился к связям, через @org.hibernate.annotations.Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
а посмотреть кусочек можно ? :  Ответ не обещаю правда;
источник

РН

Роман Нагаев in Spring Framework and more
Aaa4
а посмотреть кусочек можно ? :  Ответ не обещаю правда;
реализованного мной кусочка нету( на этот раз я отказался от этого и сделал то что хотел руками, но есть примеры из туториалов
https://www.mkyong.com/hibernate/cascade-jpa-hibernate-annotation-common-mistake/
https://www.baeldung.com/jpa-cascade-types
источник

PD

Plomipu Dmitri in Spring Framework and more
Ruslan Stelmachenko
префикс нужен если используется дефолтный в буте DelegatingPasswordEncoder. По вашему стектрейсу видно, что у вас именно он используется.

для конкретного энкодера (например BCryptPasswordEncoder) префикс НЕ нужен.

вы можете закодировать пароль с помощью BCryptPasswordEncoder и потом декодировать его с помощью DelegatingPasswordEncoder, если поставите префик {bcrypt} к ЗАКОДИРОВАННОМУ значению, а не сырому.

либо вы можете напрямую использовать BCryptPasswordEncoder и для кодирования, и для проверки, тогда префикс в запомненном значении не нужен. Но тогда вы должны же сообщить AuthenticationManager-у о том, что вы хотите использовать BCryptPasswordEncoder, а не DelegatingPasswordEncoder. А вы этого тоже не сделали. После inMemoryAuthentication() можно задать passwordEncoder().
@djxak здравствуйте. Я извиняюсь, что пишу вам так поздно, но я реально попробовал поменять энкодер на BCryptPasswordEncoder, убрал префикс в задавании пароля в AuthentificationManager, но ошибка никуда не пропала. Все равно таже самая, что и была в первый раз. id не находится и, по-прежнему, он null.

final BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
String passwordHash = encoder.encode("123123");
final List<GrantedAuthority>autorities = new ArrayList<GrantedAuthority>();
autorities.add(new SimpleGrantedAuthority("USER"));
authenticationManagerBuilder
.userDetailsService(customUserDetailsService)
.and()
.inMemoryAuthentication()
.passwordEncoder(new BCryptPasswordEncoder())
.withUser("DefUser")
.password(passwordHash)
.authorities(autorities);
источник

PD

Plomipu Dmitri in Spring Framework and more
прям мата не хватает, чтобы описать какой Spring Sequrity капризный, прям как младенец :(
источник

PD

Plomipu Dmitri in Spring Framework and more
вот что я делаю не так ?
источник

RS

Ruslan Stelmachenko in Spring Framework and more
Plomipu Dmitri
@djxak здравствуйте. Я извиняюсь, что пишу вам так поздно, но я реально попробовал поменять энкодер на BCryptPasswordEncoder, убрал префикс в задавании пароля в AuthentificationManager, но ошибка никуда не пропала. Все равно таже самая, что и была в первый раз. id не находится и, по-прежнему, он null.

final BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
String passwordHash = encoder.encode("123123");
final List<GrantedAuthority>autorities = new ArrayList<GrantedAuthority>();
autorities.add(new SimpleGrantedAuthority("USER"));
authenticationManagerBuilder
.userDetailsService(customUserDetailsService)
.and()
.inMemoryAuthentication()
.passwordEncoder(new BCryptPasswordEncoder())
.withUser("DefUser")
.password(passwordHash)
.authorities(autorities);
В первый раз, если я правильно помню, был стектрейс. И там было явно видно, что энкодер используется другой. Если сейчас ошибка такая же, то значит что-то недоконфигурили. Не должно быть в стектрейсе упоминания DelegatingEncoder, если вы явно BCryptEncoder задали.
источник

PD

Plomipu Dmitri in Spring Framework and more
Ruslan Stelmachenko
В первый раз, если я правильно помню, был стектрейс. И там было явно видно, что энкодер используется другой. Если сейчас ошибка такая же, то значит что-то недоконфигурили. Не должно быть в стектрейсе упоминания DelegatingEncoder, если вы явно BCryptEncoder задали.
хм. Если бы я знал, где доконфигурировать. Я же судя по моем куску коду явно менеджеру аутентификации сказал, какой ему энкодер использовать. Может быть вы дадите ещё подсказки ?
источник

RS

Ruslan Stelmachenko in Spring Framework and more
Дам. Создайте новый MCVE проект, где будет минимально все сконфигурировано, без лишних телодвижений по настройке cors, jwt или еще каких-то не связанных вещей, просто чтобы проверить именно энкодер. Если все работает, то добавляйте туда по немногу конфигурации, пока не перестанет. Так вы поймете, что именно не так.

Скажу сразу - минимальный пример точно работает.

@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

   @Override
   protected void configure(HttpSecurity http) throws Exception {
       http
           .authorizeRequests()
               .anyRequest().authenticated()
               .and()
           .formLogin()
               .permitAll()
               .and()
           .logout()
               .permitAll();

   }

   @Override
   protected void configure(AuthenticationManagerBuilder auth) throws Exception {
       PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
       auth
           .inMemoryAuthentication()
               .passwordEncoder(passwordEncoder)
               .withUser("user")
               .password(passwordEncoder.encode("123"))
               .roles("USER");
   }

}
источник

⠀­­ in Spring Framework and more
Немного не по теме, наверное.
После того как перешел на openjdk вместо oraclejdk (потому что репозиторий на ubuntu больше не поддерживается) идея постоянно ругается на отсутствие heap-memory. А если увеличить, то 8гб озу не хватает на то чтобы банально открыть два проекта. Сталкивался кто-то?
источник

PD

Plomipu Dmitri in Spring Framework and more
Ruslan Stelmachenko
Дам. Создайте новый MCVE проект, где будет минимально все сконфигурировано, без лишних телодвижений по настройке cors, jwt или еще каких-то не связанных вещей, просто чтобы проверить именно энкодер. Если все работает, то добавляйте туда по немногу конфигурации, пока не перестанет. Так вы поймете, что именно не так.

Скажу сразу - минимальный пример точно работает.

@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

   @Override
   protected void configure(HttpSecurity http) throws Exception {
       http
           .authorizeRequests()
               .anyRequest().authenticated()
               .and()
           .formLogin()
               .permitAll()
               .and()
           .logout()
               .permitAll();

   }

   @Override
   protected void configure(AuthenticationManagerBuilder auth) throws Exception {
       PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
       auth
           .inMemoryAuthentication()
               .passwordEncoder(passwordEncoder)
               .withUser("user")
               .password(passwordEncoder.encode("123"))
               .roles("USER");
   }

}
спасибо Руслан. Я позже напишу ещё тогда ).
источник

RS

Ruslan Stelmachenko in Spring Framework and more
Еще такой странный вопрос: заметил, что вы в AuthenticationManagerBuilder добавляете 2 UserDetailsService. Один ваш, другой inMemory. А из какого из них юзер-то не читается? Если из вашего customUserDetailsService, то на нем-то вы passwordEncoder не задали..
источник

PD

Plomipu Dmitri in Spring Framework and more
аааа. Скорее всего, Руслан так как в конфиге всяко http фильтр этот сервис запускает при проверке пароля. Очень даже может быть
источник