-1
我正在開發一個使用Java/J2EE和JSF的Web應用程序。我的應用程序包含多個頁面,其中包含用戶輸入登錄名和密碼的登錄頁面。我的問題是,當我輸入我可以訪問的任何頁面的url時,無需通過登錄頁面。如何防止這一點?訪問任何頁面而無需通過登錄頁面
我正在開發一個使用Java/J2EE和JSF的Web應用程序。我的應用程序包含多個頁面,其中包含用戶輸入登錄名和密碼的登錄頁面。我的問題是,當我輸入我可以訪問的任何頁面的url時,無需通過登錄頁面。如何防止這一點?訪問任何頁面而無需通過登錄頁面
我向你建議的答案不適合我。我被迫重寫init()方法,如下所示:
public void init(FilterConfig filterConfig) throws ServletException {
String urls = filterConfig.getInitParameter("restrictedPages");
StringTokenizer token = new StringTokenizer(urls, ",");
ArrayList<String> urlList = new ArrayList<>();
while (token.hasMoreTokens()) {
urlList.add(token.nextToken());
}
}
而且我在網絡中添加了下面這行代碼。 XML
<init-param>
<param-name>restrictedPages</param-name>
<param-value>/login.jsp</param-value>
</init-param>
我的doFilter方法是:
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session = request.getSession(false);
if (session == null || session.getAttribute("idCustomer") == null) {
response.sendRedirect("/login.jsp");
} else {
chain.doFilter(req, res);
}
}
可能重複:http://stackoverflow.com/a/8480241/1362049 –
你對你的網頁的Java EE安全什麼樣的配置。 xml文件?您可能希望重新訪問Sun的安全角色指南,同時梳理您的配置:http://docs.oracle.com/javaee/5/tutorial/doc/bncav.html – 8bitjunkie
可能的重複[如何在JSF中實現登錄過濾器?](http://stackoverflow.com/questions/8480100/how-implement-a-login-filter-in-jsf) –