Geçenlerde şirketin Active Directory bağlı bildirime güvenlik (server.xml/web.xml) kullanan JSP bir erkek kedi web uygulaması geliştirdi. Yeni doğan projeye JSF desteği eklemem istendi. Giriş formunu jsf'ye dönüştürmek basit bir konuydu ve güvenlik modeli hala işe yaradı. Ben daha geniş bir kitleye rapordan birini görüntülemesine izin, ancak yalnızca küçük bir grup için eylem düğmeleri hale eğer (isUserInRole()), kullanıcı izinlerini/güvenliğini bir JSF düğmesine eklemek için en kolay yol mu?
bir ortak
istedi. JSF'ye yeni olmak, biraz araştırma yapmak zorunda kaldım. ben "jsf düğme güvenliği" ve "jsf düğme izinleri" ve çoğunlukla öldüğünü biter çeşitli önerileri denedikten gibi şeyler googling yaklaşık dört saat geçirdim. Bir başka ortak, Spring güvenlik modelini kullanmayı önerdi, ancak bunu yapmak için daha kolay bir yol varsa, bir dolu Bahar kütüphaneleriyle uğraşmak istemedim.Sonunda, ben inanılmaz derecede basitti cevap, tökezledi. Sadece HttpServletRequest yöntemini kullanmam gerekiyordu: isUserInRole(), şu anda oturum açmış kullanıcının işlem düğmelerini görmesine izin verilip verilmediğini belirlemek için. Son on yılda HttpServletRequests LOT kullandım, ama bu yöntemi öğrenmeyi hatırlamıyorum.
public boolean isUserInRole(String role) {
return (FacesContext.getCurrentInstance().getExternalContext().isUserInRole(role));
}
Sorularım özellikle şunlardır: jsf ile, aşağıda gösterildiği gibi, bu yönteme almak için basit bir mesele ben farkında olmalı bu yaklaşımı hakkında herhangi bir FRİKİKLERİNDEN vardır ve yapmak için daha kolay bir yolu yoktur o? Eğer MTU uygulamasına bir eklenti olarak Tomahawk kullanırsanız
Bir destek fasulyesine gerek kalmadan EL'de daha da basitleştirilebilir: '# {request.isUserInRole ('foo')}' – BalusC
ancak jsf yönetimli bir fasülyede, isteğinize erişemezsiniz. sağ? –
Nadiren bir arka fasülyede ihtiyacım vardı. Sadece görünümde "rendered", "readonly" veya "disabled" özelliklerini ekleyin. – BalusC