2015-12-09 38 views
10

'daki rol için büyük/küçük harf duyarlılığı denetimi javax.servlet.http.HttpServletRequest sınıfında isUserInRole adlı bir yöntem vardır. Kullanıcının örneğin admin rolü olup olmadığını kontrol etmek için bunu kullanıyorum. Ancak, bu yöntem büyük/küçük harfe duyarlıdır. Bu nedenle, istekte rol Admin veya ADMIN ise, isUserInRole("admin") yanlış olur. Bir dizi farklı rolü kontrol etmek için birden çok uygulamada yer alan isUserInRole yöntemini çeşitli yerlerde kullanırım.HttpServletRequest

isUserInRole ile olası her bir olası durum kombinasyonunu kontrol etmeyi gerektirmeyen isUserInRole işlevselliğini büyük/küçük harf duyarlılığı elde etmenin bir yolu var mı?

+0

Neden? Rol adlarınızı tutarlı bir şekilde yazarken sorun mu yaşıyorsunuz? – EJP

+0

Farklı ortamlarda kullandığım üçüncü taraf kimlik doğrulama hizmetinin birden çok sürümü vardır, bunlardan biri rol adlarını küçültür, diğeri ise durumu korur. –

cevap

13

Bir HttpServletRequestWrapper kullanarak istekleri sarar bir filtre uygulamak olabilir - planlarınız HttpServletRequestWrapper küçük harf duyarsız (örneğin üst durumunda bütün rolleri yapılandırmak yapmak için isUserInRole() yöntemini geçersiz kılmak için, büyük harf öğesine dönüştürerek Test rol parametreler).

bir hızlı arama

3

http://docs.oracle.com/javaee/6/tutorial/doc/gjiie.html

Sadece yönetici rolüne birden rol isimleri map ... örnekler HTTPServletRequestWrapper bol bulacaksınız:

<servlet> 
    <security-role-ref> 
     <role-name>admin</role-name> 
     <role-link>admin</role-link> 
    </security-role-ref> 
    <security-role-ref> 
     <role-name>Admin</role-name> 
     <role-link>admin</role-link> 
    </security-role-ref> 
</servlet> 

<security-role> 
    <role-name>admin</role-name> 
</security-role> 
+0

'isUserInRole 'çağrısı, role bağlı olarak kalan uç noktalarda farklı kod yolları yürütmek için kullanılır. Erişim kısıtlaması için web.xml'de bu tür bir kurulumumuz var. –