当前位置:  技术问答>java相关

页面的权限验证

    来源: 互联网  发布时间:2015-06-25

    本文导语:  如何对页面进行权限验证:不让在浏览器中直接输入页面名称即进入相关界面。 例如: http://localhost:8080/library/login.htm   进入登录界面 http://localhost:8080/library/  就列出了library目录下所有的文件;之后点击一些文...

如何对页面进行权限验证:不让在浏览器中直接输入页面名称即进入相关界面。

例如:
http://localhost:8080/library/login.htm   进入登录界面

http://localhost:8080/library/  就列出了library目录下所有的文件;之后点击一些文件就能够进行相关操作了----如何避免。

|
resin 
在docweb-inf、文件夹下面建立一个文件web.xml,加入以下内容!  
   
     none    
   

|
我们是这样处理的:
1。防止输入目录地址就列出目录下所有的文件--在每个目录下加入一个index.jsp
//代码如下


 XX 分 销 管 理 系 统


top.location.replace("/index.jsp");//引回根目录下登陆页面。



2。防止直接输入页面地址就打开相应的页面
--首先,要配合用户注册,注册用户打开页面时读取相应的权限信息,写入Sesiion,在每个页面的开始进行判断,Session正确的话就执行相应的操作,否则引回根目录下登陆页面(可以写成一个Common.jsp文件,包含在每个页面的顶部
这是我们用的common.jsp文件,仅供参考
//权限处理beans
 



XX 分 销 管 理 系 统

  
   
      alert('');
      top.location.replace("../login.jsp");
   




3.以上情况不能避免合法用户直接打开某一授权页面,以及在新窗口打开联接的情况
可考虑用js实现common.jsp中加入
//以下防止用户直接打开授权浏览页面
 String HH_Referer=request.getHeader("Referer");
 if(HH_Referer==null)return;
//以下防止在新页面打开


Times2001(回车) :apache的conf文件里配置一下 ---能否讲的详细些?这个方法听说过,不知道该怎么做。


|
设置服务器禁止目录浏览。
写一个自定义tag:CheckLogonTag,这样在所有页面开头只需
加就可以了

import java.io.IOException;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.TagSupport;
import org.apache.struts.action.Action;
import org.apache.struts.util.BeanUtils;
import org.apache.struts.util.MessageResources;


/**
 * Check for a valid User logged on in the current session.  If there is no
 * such user, forward control to the logon page.
 *
 */

public final class CheckLogonTag extends TagSupport {


    // --------------------------------------------------- Instance Variables


    /**
     * The key of the session-scope bean we look for.
     */
    private String name = Constants.USER_KEY;


    /**
     * The page to which we should forward for the user to log on.
     */
    private String page = "/logon.jsp";


    // ----------------------------------------------------------- Properties


    /**
     * Return the bean name.
     */
    public String getName() {

return (this.name);

    }


    /**
     * Set the bean name.
     *
     * @param name The new bean name
     */
    public void setName(String name) {

this.name = name;

    }


    /**
     * Return the forward page.
     */
    public String getPage() {

return (this.page);

    }


    /**
     * Set the forward page.
     *
     * @param page The new forward page
     */
    public void setPage(String page) {

this.page = page;

    }


    // ------------------------------------------------------- Public Methods


    /**
     * Defer our checking until the end of this tag is encountered.
     *
     * @exception JspException if a JSP exception has occurred
     */
    public int doStartTag() throws JspException {

return (SKIP_BODY);

    }


    /**
     * Perform our logged-in user check by looking for the existence of
     * a session scope bean under the specified name.  If this bean is not
     * present, control is forwarded to the specified logon page.
     *
     * @exception JspException if a JSP exception has occurred
     */
    public int doEndTag() throws JspException {

// Is there a valid user logged on?
boolean valid = false;
HttpSession session = pageContext.getSession();
if ((session != null) && (session.getAttribute(name) != null))
    valid = true;

// Forward control based on the results
if (valid)
    return (EVAL_PAGE);
else {
    try {
pageContext.forward(page);
    } catch (Exception e) {
throw new JspException(e.toString());
    }
    return (SKIP_PAGE);
}

    }

    /**
     * Release any acquired resources.
     */
    public void release() {

        super.release();
        this.name = Constants.USER_KEY;
        this.page = "/logon.jsp";

    }
}

|
这个要通过服务器来配置。

|
接受上一页的url不就结了

|
关注

|
apache的conf文件里配置一下

|
另外可以在每页加身份验证
用session

|
用户注册时,给他授权,在每个页面开头判断他对此页面有没有权限

|
从resin的配置文件里禁用文件列表

|
可使用servlet2.3中的filter技术,比较灵活。

|


下面有一行:
    Options FollowSymLinks MultiViews Indexes

请把Indexes删除,改成
    Options FollowSymLinks MultiViews

这样,htdocs就不会被列出目录列表

|
guanzhu

|
建立一个页面对应的权限表。
再写一个页面权限的判别程序INCLUDE在页面里。就OK了。
我的就是这么做的,还不错。

|
你要消除服务器的目录服务

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 通过javascript库JQuery实现页面跳转功能代码
  • 一JSP网站,统一指定一个errorPage页面,统一处理异常,在指定的errorPage页面中,我想知道具体是哪个页面出错的,即想知道出错页面的具
  • JavaScript实现页面跳转的几种方法(参考代码)
  • 求救!weblogic6.0后台运行正确,前台页面跳转或调用其他页面时出“页面无法显示错误”
  • HTML 5 <base> 标签-规定页面中所有链接的基准 url
  • jquery 父页面查找iframe子页面内容、子页面查找父页面内容
  • HTML <!DOCTYPE> 标签用法详解及如何解决<!DOCTYPE html>未声明时导致页面无效的问题
  • 请问applet怎么能与所在的页面进行通讯 即从页面中取得变量和把返回值返回给页面?
  • 页面刷新问题:所有的页面在打开时无论传递的参数是什么,打开的总是上一次打开页面的内容,必需刷新之后才能看到实际的网页。
  • 如何在让表单的提交页面出现在框架页面中。
  • 如何能够只打印,页面上的表格,页面上的上一页,下一页,还有按钮不打印
  • 请问怎么样能自动定向到另一个页面并且给那个页面传参数呀?
  • 诸位大瞎:jsp中不能写方法,可能是因为这个页面里的所有语句都在某个方法中。 我想问一下,怎么复用某个页面里的程序呢? 不用 bean,因为程序要显示很多 html,用 include 也不行,因为 页面有传入参数。
  • 在JSP中如何从一个页面转向另一个页面?
  • 为何我使用javascript中location'****.jsp'跳到某一页面,jsp页面不重新编译执行
  • ?启动jsp页面时,让页面刷新(一次)?
  • 当我修改了一个jsp文件之后刷新页面,为什么页面上的内容没有更新的呢?
  • jsp对页面的大小有否限制,我的页面在60多K之后就断掉了!!!
  • 改变一系列页面的页面风格问题
  • java相关 iis7站长之家
  • JSP中如何在一页面执行后导入另一页面?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,