• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tagi Spring Security nie działają poprawnie

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
248 wizyt
pytanie zadane 3 sierpnia 2017 w Java przez Jonki Dyskutant (8,180 p.)

Używam sobie Spring Boot i Spring Security. Chciałem zrobić autoryzację dla pewnych elementów na stronie np. takich jak przycisk logowania i rejestracji, które powinny być tylko wyświetlane dla użytkownika niezalogowanego. W tym celu dodałem do elementu html tag

sec:authorize="isAnonymous()"

IntelliJ jak zwykle daje mi jakieś informacje, że niedozwolona operacja itd. https://zapodaj.net/191d3b4fa1aa6.png.html , ale często ma takie akcje, to nic nowego. Dodałem również
przestrzeń nazw

xmlns:sec="http://www.w3.org/1999/xhtml"

i na tym powinienem w zasadzie skończyć i powinno działać. Jednak tak nie jest. Najdziwniejsze jest to, że po uruchomieniu strony i wejściu w kod źródłowy oczom ukazuje się https://zapodaj.net/2cb609f185e3e.png.html . W kodzie źródłowy możemy ujrzeć

sec:authorize="isAnonymous()"

W jaki to sposób? Oprócz tego, że autoryzacja nie działa, więc czy użytkownik jest zalogowany czy nie, to i tak nie ma żadnej reakcji, to jeszcze w kodzie znajdujemy tag od Spring Security. Przecież on nie powinien być w ogóle wyświetlany w kodzie przez przeglądarkę. Powinien być interpretowany przed pokazaniem strony i pokazywać element albo nie. A tutaj od tak sobie jest. Mógłby ktoś wyjaśnić dlaczego tag ze Spring Security nie jest interpretowany? Moja konfiguracja Security: https://pastebin.com/qdAgiAta , lecz tutaj problem raczej nie leży. Ogólnie używam Spring Boot i może trzeba coś skonfigurować? Kiedyś robiłem dokładnie to samo na samym Spring Framework i działało bez problemu, a tutaj nie.

komentarz 3 sierpnia 2017 przez Mateusz51 Nałogowiec (28,180 p.)
Jakich szablonow strony uzywasz??
1
komentarz 3 sierpnia 2017 przez Jonki Dyskutant (8,180 p.)

Problem już rozwiązałem. Problem był z pakietem

compile('org.springframework.boot:spring-boot-starter-thymeleaf')

ponieważ nie posiadał wszystkich potrzebnych klas. Dodatkowo posiadał inną wersję klasy 'SpringTemplateEngine', która nie miała metody

.setEnableSpringELCompiler();

Wymieniłem ten pakiet na pojedyncze

compile group: 'org.thymeleaf', name: 'thymeleaf', version: '3.0.7.RELEASE'
	compile group: 'org.thymeleaf', name: 'thymeleaf-spring4', version: '3.0.7.RELEASE'
	compile group: 'org.thymeleaf.extras', name: 'thymeleaf-extras-springsecurity4', version: '3.0.2.RELEASE'

i teraz bez konfiguracji wszystko działa bez problemu.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
0 odpowiedzi 354 wizyt
0 głosów
2 odpowiedzi 649 wizyt
+1 głos
1 odpowiedź 214 wizyt

93,444 zapytań

142,436 odpowiedzi

322,698 komentarzy

62,806 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...