Spring - Thymeleaf: Wieso wird gem. Fallunterscheidung entsprechende View nicht geladen?

Zrebna

Bekanntes Mitglied
Hallo!

Ausgangssituation:
Meine Application hat User, die jeweils eine Rolle/Authorität als Admin, Moderator oder regular User haben können.
Je nachdem wer eingeloggt ist, soll sich die Navigation oben im "header" leicht unterscheiden.
Bei nicht eingeloggten Usern/Gästen soll sich der header/die Navigation ebenfalls unterscheiden.

Bzgl. den Fallunterscheidungen bei logged in Usern mit unterschiedlichen Rollen klappen meine Unterscheidungen im html-file, wenn ich die letzte Fallunterscheidung
bzgl. nicht-eingeloggten Usern am Ende rauslasse, d.h. auskommentiert habe

Relevante Stellen im html-file bzgl. den Fallunterscheidungen nach Rollen:
HTML:
    <div layout:fragment="header" sec:authorize="hasRole('ADMIN')">
            <h4>Logged in as an admin</h4>
              <!-- Navigation im Browser leicht anders -->
        </div>

    <div layout:fragment="header" sec:authorize="hasRole('MODERATOR')">
            <h4>Logged in as moderator</h4>
             <!-- Navigation im Browser leicht anders -->
        </div>
    
<div layout:fragment="header"
            sec:authorize="hasAuthority('REGULAR USER')">
           <h4>Hello, <b> <span th:text="${session.regularUserSession.user.login}" ></span></b>!</h4>             
          <!-- Navigation im Browser leicht anders -->

Wenn ich nun genau drunter folgende Fallunterscheidung einkommentiere/hinzufüge, dann
ladet zwar der Browser für nicht-eingeloggte User korrekt den angepassten header/navigation,
aber wenn sich dann ein User einloggt, dann erscheint im Browser gar kein header/keine Navigation mehr - also würden die Fallunterscheidungen weiter oben (siehe code snipppet oben) einfach übergangen/ignoriert werden.

HTML:
<div layout:fragment="header" sec:authorize="isAnonymous()">
        <h4>Header for non-authenticated users</h4>
        <!-- Navigation im Browser für nicht eingeloggte User/Gäste -->
    </div>


Hat jemand eine Idee, was hier falsch läuft und wie ich mein Problem lösen könnte?

Gruß
Zrebna
 
Ich mache das nicht so oft aber ich habe noch nie eine Leerzeichen in einer Role gesehen: hasAuthority('REGULAR USER'). Bisher nur entweder eine Array oder einen _.
 
Hi!

Hab das nun umgestellt auf
HTML:
sec:authorize="hasAuthority('REGULAR_USER')">
und an den entsprechenden Stellen im Code auch - leider lag es nicht daran.
 
Update:
Hab mein Problem mittlerweile gelöst und bin es einfach anders angegangen:

Hab quasi nur eine navigation/header und je nach Rolle gibt es dann entweder zusätzliche menu punkte oder nicht.
 

Zurück
Oben