2013年9月22日星期日

How to disable SSH users to directly access the project JSP page

If it is said that the WEB-INF below Needless to say,
If it is said in the JSP page plus code Needless to say,
whether through filter or blocker to block access to , I think this is definitely possible. Just how to do ?
------ Solution ---------------------------------------- ----
import java.io.IOException;

  import java.io.PrintWriter;

  import javax.servlet.Filter;

  import javax.servlet.FilterChain;

  import javax.servlet.FilterConfig;

  import javax.servlet.RequestDispatcher;

  import javax.servlet.ServletException;

  import javax.servlet.ServletRequest;

  import javax.servlet.ServletResponse;

  import javax.servlet.http.HttpServlet;

  import javax.servlet.http.HttpServletRequest;

  import javax.servlet.http.HttpServletResponse;

  import javax.servlet.http.HttpSession;

  /**

  * 过滤器使用:用户没用登录,不可以在浏览器输入地址访问页面

  * @author Administrator

  *

  */

  public class OnlineFilter extends HttpServlet implements Filter {

  public void doFilter(ServletRequest request, ServletResponse response,

  FilterChain chain) throws IOException, ServletException {

  RequestDispatcher dispatcher = request.getRequestDispatcher("Login.jsp");

  HttpServletRequest req =(HttpServletRequest)request;

  HttpServletResponse res =(HttpServletResponse)response;

  HttpSession session =req.getSession(true);

  //从session 里面获取用户名的信息

  String user =(String)session.getAttribute("user");

  //判断如果没有取到用户信息,就跳转到登陆页面,提示用户进行登陆

  if(user == null || "".equals(user)){

  //跳转到登陆的页面,进行用户登录

  dispatcher.forward(request,response);

  System.out.println("用户没有登录,请登陆!");

  }else{

  System.out.println("用户已经登陆成功,允许继续操作!");

  }

  chain.doFilter(request, response);

  }

  public void init(FilterConfig arg0) throws ServletException {

  }

  /**

  * Destruction of the servlet. 


  */

  public void destroy() {

  super.destroy(); // Just puts "destroy" string in log

  }

  public void init() throws ServletException {

  }

  }



------ For reference only ---------------------------------- -----
you write custom filters in struts2 struts config file to look like, not sure you can google "struts2 custom filters "
------ for reference only ---------------------------------------
if I would not have posting for help , and I also know that thinking , but I can not write ah
------ For reference only ----------------------- ----------------

add a filter configuration ah, the filter inside, you can make some judgments, such as was not from the home page come in, and some other conditions are not logged in , then

can not access some jsp pages .
------ For reference only -------------------------------------- -
Well, what I want is example code ah
------ For reference only ------------------------- --------------
Thank you upstairs, I have just found out , put a little integrity ,
Java code
web.xml configuration

jspFilter
com.cb.cbms.coreserver.servlet.JspFilter


jspFilter
/ *


Java code
package com.cb.cbms.coreserver.servlet;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/ **
* does not allow direct access to jsp
* direct access to all the right jsp , jump to the home side
* @ author eason
*
* /
public class JspFilter implements Filter {

@ Override
public void doFilter (ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
String url = httpServletRequest.getRequestURI ();
if (url! = null && url.endsWith (". jsp")) {
httpServletResponse.sendRedirect (httpServletRequest.getContextPath ());
return;
}
chain.doFilter (request, response);
}

@ Override
public void destroy () {

}

@ Override
public void init (FilterConfig arg0) throws ServletException {

}

}
------ For reference only ----------------------------- ----------
Filter source :

package com.filterdemo;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;


public class MyFilter1
    implements Filter
{

    public void destroy()
    {
        System.out.println("MyFilter1 destroy...");
    }

    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
        throws IOException, ServletException
    {
        System.out.println("MyFilter1 doFilter...");
        System.out.println("You can not come into jsp page derectly.");
        arg1.setContentType("text/html");
        arg1.setCharacterEncoding("utf-8");
        PrintWriter out = arg1.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Filter测试</title>");
        out.println("</head>");
        out.println("</html>");
        out.println("<body>");
        out.println("不允许直接访问JSP页面!");
        out.println("</bidy>");
        out.println("</html>");
    }

    public void init(FilterConfig arg0)
        throws ServletException
    {
        System.out.println("MyFilter1 init...");
    }

}

web.xml configuration

<filter>
<filter-name>MyFilter1</filter-name>
<filter-class>com.filterdemo.MyFilter1</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter1</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

------ For reference only ----------------------------------- ----
package base;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

public class MyInterceptor extends MethodFilterInterceptor {


protected String doIntercept (ActionInvocation invocation) throws Exception {
System.out.println ("Action class :" + invocation.getAction (). getClass (). getName ());
System.out.println ("Action method :" + invocation.getProxy (). getMethod ());
System.out.println (" My interceptor was executed .. ." ) ;
/ / ServletActionContext.getResponse (). sendRedirect ();
return invocation.invoke ();
}



}

struts.xml

"- / / Apache Software Foundation / / DTD Struts Configuration 2.0 / / EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">





class = "base.MyInterceptor">












The detailed enough it , copy up can be run directly
------ For reference only ----------------------- ----------------
struts.xml recently a content

------ For reference only ------------------------- --------------
  The reply deleted by an administrator at 2013-08-18 15:20:31

------ For reference only ---------------------------------- -----
If it is a multi-user how to do ?

没有评论:

发表评论