利用JAAS实现简单的页面验证与授权

注:我是在word里写的这篇文章,然后黏贴过来的,所以截图都没有,我已将该文档上传在我的资源中,需要的同学可以去下载,谢谢支持!

利用JAAS实现简单的页面验证与授权

开发环境NetBeans7.0.1+Glassfish3.1.1+mysql5.1

1.    首先,数据库里至少要有两张表,一张存放用户登录名和密码,另一张存放用户对应的角色

2.    下面加入数据

密码为8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918,该值为adminSHA-256加密结果

3.    在NetBeans里新建一个web项目

4.    新建一个JDBC资源,可以在NetBeans里完成,也可以在glassfish控制台完成。下面在NetBeans里操作。

右键点项目,新建,其他。GlassfishJDBC连接池

填写相应的属性并完成操作。在服务器资源中查看glassfish-resources.xml

再右键点项目,新建,其他。选择glassfishglassfish资源

完成操作。

5.    启动glassfish。进入控制台http://localhost:4848/。这个时候可以先验证一下刚刚建立的jdbc资源是否可用,运行一遍项目,然后再控制台选择资源->JDBC->jdbc连接池

选择刚刚建立的连接池,点击Ping按钮,如果出现Ping成功则没有问题。

选择配置->server-config->安全性

6.    展开安全性,选择领域

7.    点新建,建立安全域

完成后点击右上角确定

8.    在项目中打开web.xml,选择安全

添加安全角色,名称为数据库中的安全角色名

新建安全约束,约束名称随便。

添加web资源集合

启用安全验证约束

9.    新建登录页面login.jsp

页面中至少需要一个表单,actionj_security_check,用户名namej_username,密码框namej_password,其他布局可随意发挥。

10. 右键点项目,新建,其他。选择glassfishglassfish描述符

选择安全。

将登录后的用户组映射为该角色。

11. 此时如果再次运行项目访问index.jsp,页面将自动跳转到login.jsp

输入用户名密码,都是admin,登录,就有权限访问index.jsp了。

12. 如果想在程序中获取已经登录的用户信息。

可通过request对象的getRemoteUser()方法获得已登录用户的用户名。

你可能感兴趣的:(数据库,jdbc,Security,action,Netbeans,Glassfish)