2017-05-21 3 views
0

Wie kann ich das Prinzipalobjekt in jsp basierend auf dem Authentifizierungstyp lesen? Oder vielleicht die Art des Objekts überprüfen?
Ausgabe ist Frühling SAML Benutzernamen in Authentication.principal setzt, und die Userdetails Objekt in Authentication.detailsSpring saml legt UserDetails im Detailobjekt fest, während das normale Formular-Login es im Prinzip festlegt

So wie kann ich zwischen Haupt- und Details in jsp wechseln die Benutzerdaten zu holen? Ich fand heraus, folgendes:

<sec:authentication var="user" property="principal"/> 
    <c:if test="${user.getClass().simpleName == 'String'}"> 
     <sec:authentication var="user" property="details"/> 
     <label>${user.userCompany}</label> 
    </c:if> 
<c:if test="${user.getClass().simpleName != 'String'}"> 
     <sec:authentication var="user" property="principal"/> 
     <label>${user.userCompany}</label> 
</c:if> 

Aber in diesem Fall muss ich zu HTML-Tags wiederholen, was ich nicht will, da es eine Menge von html Duplizität führen wird. Oder wie kann ich das gesamte Authentifizierungsobjekt in Jsp lesen? Irgendwelche Vorschläge?

Antwort

0

Nach vielen r & d, fanden die Lösung wie folgt:

<sec:authentication var="userDetail" property="principal"/> 
          <c:choose> 
           <c:when test="${userDetail.getClass().simpleName == 'String'}"> 
            <sec:authentication var="user" property="details"/> 
           </c:when> 
           <c:otherwise> 
            <sec:authentication var="user" property="principal"/> 
           </c:otherwise> 
          </c:choose> 

Ich denke, das tun wird, bis jemand besser etwas sagt.

Verwandte Themen