Servlet和JSP安全问题的示例分析

发布时间:2021-11-22 10:32:08 作者:小新
来源:亿速云 阅读:134

这篇文章主要介绍了Servlet和JSP安全问题的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、设置XML文件

配置web.xml文件的***步是定义一个安全约束,也就是一个标签。这个标签将保护响应的URL,以使特定的用户才能访问它。注意我们必须要使用标签定义一个或多个HTTP方法。如果你想让安全约束应用到所有的HTTP方法,那么只要简单的忽略标签即可。

做完上面的设置后,下一步需要设置SSL。我们可以使用标签以及这个标签的一个子标签来设置。却将的值设置成CONFIDENTIAL。

***一步我们需要设置验证方法。这需要设置标签以及子标签。在这里我们将设为BASIC。下面是web.xml文件的部分内容:

<security-constraint> <web-resource-collection> <web-resource-name>ServletApplication  web-resource-name> <url-pattern>/*url-pattern> web-resource-collection> <auth-constraint> <role-name>ttrolerole-name> auth-constraint> <user-data-constraint> <transport-guarantee>CONFIDENTIAL  transport-guarantee> user-data-constraint> security-constraint> <login-config> <auth-method>BASICauth-method> <realm-name>defaultrealm-name> login-config> <security-role> <role-name>ttrolerole-name> security-role>

在上述的例子中,只有用户"ttrole"才能访问Servlet和JSP页。

在JavaEE环境中将使用这些用户验证,但在许多操作系统环境中,用户和组关联。因此,security-role-mapping在用户头组之间提供了一座桥梁。在JavaEE5应用服务器中,我们可以在sun-application.xml文件中按如下的方式字义security-role-mapping标签:

<sun-application> <security-role-mapping> <role-name>myrolerole-name> <principal-name>myuserprincipal-name> security-role-mapping> <security-role-mapping> <role-name>ttrolerole-name> <group-name>ttgroupgroup-name> security-role-mapping> <security-role-mapping> <role-name>arolerole-name> <principal-name>ttuserprincipal-name> security-role-mapping> sun-application>

二、运行实例代码

在这一节我们来讲一下如何运行上面的程序。在这里我们使用的集成开发环境是NetBeansIDE5.5以及NetBeans企业开发包。在安装完NetBeans后,我们需要进行以下几步来运行这个程序。

1.首先我们需要下载这个程序,下载连接为:例子代码。然后将其解压。

2.启动NetBeans。

3.打开webann工程(刚才zip文件中的NetBeans工程),如果出现一个"Resolvemissingserverproblem"提示信息,说明应用服务器还没有被加到NetBeans的服务器列表中。我们可以选择Tools>ServerManager,然后将相应的服务器加到列表中。

4.启动Sun内嵌在NetBeans中的JavaSystemApplicationServer。我们还可以通过在命令中输入如下的命令来启动服务器:
/bin/asadminstart-domaindomain1
上面的是应用服务器的安装目录。

5.建立一个用户。我们可以通过管理控制台来完成的(默认是http://localhost:4848),可按以下步骤操作:
(1)从左侧的管理树中选择Configuration>Security>Realms>file。
(2)单击"ManageUsers",然后单击"New"。
(3)输入以入信息。
UserId:ttuser
GroupList:ttgroup
NewPassword:ttpassword
ConfirmNewPassword:ttpassword
(4)单击"OK",保存设置。

在建立***个用户后,使用同样的方式建立第二个用户ttusers2,输入信息如下:

UserId:ttuser2
GroupList:ttgroup
NewPassword:ttpassword
ConfirmNewPassword:ttpassword

6.按着以下步骤编译NetBeans工程:
(1)右击工程窗口的webann节点。
(2)选择"CleanandBuildProject"。

在这个步骤中将建立ear文件,并将它们放到webann/dist目录中。

7.按着以下步骤发布ear文件:
(1)右击工程中的webann节点。
(2)选择"DeployProject"。

除了上述的发布方法,我们还可以按以下的方式通过管理界面发布:
(1)在左侧的控制树中选择Applications>EnterpriseApplications。
(2)单击"Deploy"。
(3)单击"Browser"按钮找到ear文件
(4)单击"OK"。

我们还可以通过如下的命令行发布ear文件:
asadmindeploywebann.ear

8.下面我们启动浏览器,在地址栏中输入https://:<PORT webann,在这里是主机名,如果是本机,就是"localhost",是HTTPS的端口,如8181。

可能由于浏览器的不同,所看到的验证信息不同,但一般会出现一个"unknownauthority",这是因为这个例子使用了self-sign验证。然后浏览器将会出现一个选项,提示您是否继续浏览应用程序。

如果我们选择继续浏览应用程序,系统将会提示我们输入用户名和密码。如果我们使用ttuser登录,将会看到类似如下的响应信息:
Hello,ttuser
EjbMessage:Hello,World,SatJun3012:04:46PDT2007
DataSourcelogintimeout:0

如果我们使用ttuser2登录,将会看到类似如下的响应信息:
Hello,ttuser2
DataSourcelogintimeout:0

之所以它们的响应信息不同是因为它们所角色不同,用户ttuser拥有"ttrole"和"arole"。而ttuser2只有"ttrole",而没有"arole"。在这个应用程序中,只有拥有角色"arole"的用户可以调用SlessLocal.hello(Stringmessage)方法,这个方法返回一个"Hello,World"信息。

当我们运行完这个程序后,可以按着如下的步骤卸载ear文件:
1.通过管理界面面卸载ear文件。
(1)在左侧的功能树中选择Applications>EnterpriseApplications
(2)选择"webann",然后单击"Undeploy"。

2.通过管理界面面删除用户。
(1)选择Configuration>Security>Realmn>file
(2)单击"ManageUsers"。
(3)选择ttuser和ttuser2。
(4)单击"Delete"。

感谢你能够认真阅读完这篇文章,希望小编分享的“Servlet和JSP安全问题的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. Jsp和Servlet有什么区别?
  2. Servlet和jsp开发

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

servlet jsp

上一篇:如何进行R语言中的单因素分析

下一篇:c语言怎么实现含递归清场版扫雷游戏

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》