2017-05-25 20 views
0

私はマルチユーザーポータルを使用しています。ここでは2人のユーザー(管理者と教師)の値をsecuredHolderに保存しています。しかし、スーパー管理者のための値を格納していません。JSPで特定の値が設定されているかどうかチェック

ユーザーロール(管理者、教師、スーパー管理者)ごとにナビゲーションメニューを表示する必要があります。

私は値がJSPページで設定されているかどうかチェックしたいと思います。どのようにJSPでそれを行うには?

ユーザーの役割を確認しましたが、特定の値を確認できませんでした。

<sec:authorize access="hasRole('ROLE_TEACHER')"> 
     -- Do something for teacher 
     -- want to check the value here 
</sec:authorize> 

答えて

0

ユーザーがログインするたびに、ユーザーのセッションでrole属性を "teacher"、 "admin"、または "superadmin"として保存しないでください。

その後、あなたはJSTLタグを使用して、このような何かを行うことができます。

<c:choose> 
    <c:when test="${sessionScope.user.role == 'teacher'}"> 
     your nav bar for teachers 
    </c:when> 
    <c:when test="${sessionScope.user.role == 'admin'}"> 
     your nav bar for admins 
    </c:when> 
    <c:when test="${sessionScope.user.role == 'superadmin'}"> 
     your nav bar for superadmins 
    </c:when> 
    <c:otherwise> 
     your nav bar for somebody else 
    </c:otherwise> 
</c:choose> 
+0

次に、コントローラのモデル属性として、他のすべてのものとスーパー管理者を区別しているものを追加できます。 ''タグを使ってチェックしてください。 – viz

+0

ロールはすでに '認証'オブジェクトの内部で 'spring-security'によって管理されています。これを行う必要はありませんレスポンスのためのthanxを – jlumietu

+0

私は ankit

0

jstlをこの方法を使用して行います。

<c:if test="${not empty var}"> 
    <div>do whatever you need</div> 
</c:if> 

はすべてをミキシング、私はこのようにそれをやります

<sec:authorize access="hasAnyRole('ROLE_TEACHER','ROLE_ADMIN')"> 
    <c:if test="${not empty var}"> 
     <div>do whatever you need</div> 
    </c:if> 
</sec:authorize> 
+0

応答のためにthanx私は ankit

0

<sec:authorize access="principal.securedHolder['value']==requiredvalue"></sec:authorize>

関連する問題