十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在web应用中,对页面的访问控制通常通过程序来控制,流程为:
创新互联主要从事做网站、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务南州晴隆,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
登录 - 设置session - 访问受限页面时检查session是否存在,如果不存在,禁止访问
对于较小型的web应用,可以通过tomcat内置的访问控制机制来实现权限控制。采用这种机制的好处是,程序中无需进行权限控制,完全通过对tomcat的配置即可完成访问控制。
为了在tomcat页面设置访问权限控制,在项目的WEB-INFO/web.xml文件中,进行如下设置:
Java代码 复制代码
1. web-app
2. !--servlet等其他配置--
3. security-constraint
4. web-resource-collection
5. web-resource-nameMy Test/web-resource-name
6. url-pattern/admin/*/url-pattern
7. /web-resource-collection
8. auth-constraint
9. role-namerole1/role-name
10. role-nametomcat/role-name
11. /auth-constraint
12. /security-constraint
13. login-config
14. auth-methodBASIC/auth-method
15. realm-nameMy Test/realm-name
16. /login-config
web-app
!--servlet等其他配置--
security-constraint
web-resource-collection
web-resource-nameMy Test/web-resource-name
url-pattern/admin/*/url-pattern
/web-resource-collection
auth-constraint
role-namerole1/role-name
role-nametomcat/role-name
/auth-constraint
/security-constraint
login-config
auth-methodBASIC/auth-method
realm-nameMy Test/realm-name
/login-config
其中,url-pattern中指定受限的url,可以使用通配符*,通常对整个目录进行访问权限控制。
auth-constraint中指定哪些角色可以访问url-pattern指定的url,在role-name中可以设置一个或多个角色名。
使用的角色名来自tomcat的配置文件$/conf/tomcat-users.xml。
login-config中设置登录方式,auth-method的取值为BASIC或FORM。如果为BASIC,浏览器在需要登录时弹出一个登录窗口。如果为FORM方式,需要指定登录页面和登录失败时的提示信息显示页面。
使用FORM方式的配置样例如下:
Java代码 复制代码
1. login-config
2. auth-methodFORM/auth-method
3. realm-nameExample Form-Based Authentication Area/realm-name
4. form-login-config
5. form-login-page/login.jsp/form-login-page
6. form-error-page/error.jsp/form-error-page
7. /form-login-config
8. /login-config
login-config
auth-methodFORM/auth-method
realm-nameExample Form-Based Authentication Area/realm-name
form-login-config
form-login-page/login.jsp/form-login-page
form-error-page/error.jsp/form-error-page
/form-login-config
/login-config
其中的form-login-page指定登录页面url,form-error-page指定登录失败时的提示页面url。
登录页面中,form的action,以及其中的用户名和密码两个参数的名称,都应取固定的值。登录的后台处理程序为j_security_check;用户名和密码的参数名称分别为:j_username和j_password。
如下是登录页面(如:login.jsp)的一段示例代码:
Java代码 复制代码
1. form method="POST" action='%= response.encodeURL("j_security_check") %'
2. table border="0" cellspacing="5"
3. tr
4. th align="right"Username:/th
5. td align="left"input type="text" name="j_username"/td
6. /tr
7. tr
8. th align="right"Password:/th
9. td align="left"input type="password" name="j_password"/td
10. /tr
11. tr
12. td align="right"input type="submit" value="Log In"/td
13. td align="left"input type="reset"/td
14. /tr
15. /table/form
从你现在给的代码来看,两个类的代码都没有package头,也就是说对于这两个类来说都是在同一个默认包下的,而且,你所给出的只有.java文件的路径,没有给.class文件的路径,只要两个.class文件都在classpath路径中,就可以访问的到
用过滤器实现 ..需要进行web.xml的手工配置,
步骤一般是建一个过滤器,在doFilter这个方法里写验证session 中用户的权限,如果不符,则不能进入你所配置访问的文件夹内所有的JSP页面了..它便会自动重定向到你的指定页,比如登入页等
还有就是配置XML文件了.有多个权限可以配置多个文件夹
下面是配置的代码..
filter
filter-nameAdminFilter/filter-name
filter-classgroup1.filter.AdminFilter/filter-class
/filter
filter-mapping
filter-nameAdminFilter/filter-name
url-pattern/affiche/*/url-pattern
/filter-mapping
import java.io.IOException;/××只能给当前用户赋予对该文件的权限,调用createNewFile()方法默认的权限是644.
×/public class FilePermission{public static void main( String[] args ){try {File file = new File("/home/test3.txt");
if (file.createNewFile()){
System.out.println("File is created!");
//Runtime.getRuntime().exec("chmod 777 /home/test3.txt");
file.setExecutable(true);//设置可执行权限
file.setReadable(true);//设置可读权限
file.setWritable(true);//设置可写权限
System.out.println("is execute allow : " + file.canExecute());
System.out.println("is read allow : " + file.canRead());
System.out.println("is write allow : " + file.canWrite());}else{System.out.println("File already exists.");}