JSF + Spring Securityを使用します。Spring Security + JSFページコンポーネントのROLE-drivenレンダリング(リンクなど)ベストプラクティス
ソリューション1 - UI指向:認証された人のみROLE_ADMIN
権限を持っている場合、ユーザーとの
JSF
ページが表示パネル。
<p:panel rendered="#{facesContext.externalContext.isUserInRole('ROLE_ADMIN')}">
...
ソリューション2から指向バックエンド(適切なDAOメソッドを注釈):
@Transactional
@PreAuthorize("hasRole('ROLE_ADMIN')")
public List<User> getUsers() {
return sessionFactory.getCurrentSession().createCriteria(User.class)
.list();
}
再開:
JSFのように見えるrendered
属性は、柔軟な解決策ではなく、DAOは、方法がない注釈付き403
にリダイレクトされているため、ユーザーフレンドリーです。
パネルやリンクを表示しない、特定の権限に対応していない優雅な解決策とは何ですか?
JSFレンダリング属性が「柔軟でない」のはなぜですか?それはあなたにとって正しい解決策であるようですが、特定のEL表現はより単純化することができます。 – BalusC
私は正確にはわかりません - 自分の気持ちです。ロールの設定が変更されたときには、.xhtmlも変更する必要があります。 – sergionni
BalusC、このELを簡略化する方法は? – sergionni