爪哇2博客
爪哇2博客

春季安全你好世界示例

在这篇文章中,我们将看到如何将基本的Spring 安全应用于 春季MVC 您好 World示例。

春季MVC教程:

如果您想保护Spring 网页应用程序,则只需要配置一些文件即可使用Spring 安全使其实现。我们将在hello world示例中应用登录安全性。因此,当只有授权用户才能访问世界消息。

这是在Spring MVC 您好 World示例中应用基本Spring 安全的步骤。

步骤1: 
创造 春季MVC 您好 World范例 名为SpringSecurityHelloWorldExample。它将创建基本的spring mvc应用程序。

第2步: 
将春季安全性添加到pom.xml。您需要向pom添加以下依赖项。

pom.xml 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
 
<项目 XML文件ns="http://maven.apache.org/POM/4.0.0" XML文件ns:si="http://www.w3.org/2001/XMLSchema-instance"
si:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.Arpit.爪哇2blog</groupId>
<artifactId>弹簧SecurityHelloWorl示例</artifactId>
<打包>战争</打包>
<>0.0.1-快照</>
<名称>弹簧SecurityHelloWorldExample 马文 网络应用</名称>
<网址>http://maven.apache.org</url>
<依存关系>
<依赖>
<groupId>unit</groupId>
<artifactId>unit</artifactId>
<>3.8.1</>
<范围>测试</范围>
</依赖>
 
<依赖>
<groupId>爪哇x.小服务程序</groupId>
<artifactId>爪哇x.小服务程序-api</artifactId>
<>3.1.0</>
</依赖>
 
<依赖>
<groupId>组织.弹簧框架</groupId>
<artifactId>弹簧-核心</artifactId>
<>${弹簧.}</>
</依赖>
<依赖>
<groupId>组织.弹簧框架</groupId>
<artifactId>弹簧-网路mvc</artifactId>
<>${弹簧.}</>
</依赖>
<!- 弹簧 安全 - >
<依赖>
<groupId>组织.弹簧框架.安全</groupId>
<artifactId>弹簧-安全-核心</artifactId>
<>${安全.}</>
</依赖>
 
<依赖>
<groupId>组织.弹簧框架.安全</groupId>
<artifactId>弹簧-安全-网路</artifactId>
<>${安全.}</>
</依赖>
 
<依赖>
<groupId>组织.弹簧框架.安全</groupId>
<artifactId>弹簧-安全-配置</artifactId>
<>${安全.}</>
</依赖>
 
<依赖>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<>1.2</>
<范围>提供</范围>
</依赖>
</依存关系>
<建立>
<finalName>弹簧SecurityHelloWorl示例</finalName>
 
<外挂程式>
<插入>
<groupId>组织.阿帕奇.专家.外挂程式</groupId>
<artifactId>专家-编译器-插入</artifactId>
<>3.1</>
<组态>
<资源>${杰克.}</资源>
<目标>${杰克.}</目标>
</组态>
</插入>
</外挂程式>
 
</建立>
<属性>
<弹簧.>4.2.1。发布</弹簧.>
<安全.>4.0.3发布</安全.>
<杰克.>1.7</杰克.>
</属性>
 
</项目>
 

第三步: 
修改 hello.jsp in /网页-INF / 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<%@ 语言=“ 爪哇” 内容类型=“文本/ html; charset = UTF-8”
    页Encoding=“ UTF-8”%>
    <%@ 标签库 字首=“C” 乌里="http://java.sun.com/jsp/jstl/core"%>  
<!DOCTYPE html 上市 “-// W3C // DTD HTML 4.01 Transitional // EN” "http://www.w3.org/TR/html4/loose.dtd">
<html>
<>
<http-当量=“内容类型” 内容=“文本/ html; charset = UTF-8”>
<标题>您好</标题>
</>
<身体>
${信息}
 
<c:网址 =“ / j_spring_security_logout” 变种=“ 登出Url” />
日志记录
 
</身体>
</html>
 

步骤4:  

现在我们需要添加spring配置xml。创建一个名为 弹簧-security.xml。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
<豆子:豆子 XML文件ns="http://www.springframework.org/schema/security"
    XML文件ns:豆子="http://www.springframework.org/schema/beans"
    XML文件ns:si="http://www.w3.org/2001/XMLSchema-instance"
    si:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    http://www.springframework.org/schema/security
    http://www.springframework.org/schema/security/spring-security-4.0.xsd">
 
    <http 汽车-配置=“真正” 利用-表达=“真正”>
      <截距-网址 模式=“ /资源/ **” 访问=“ permitAll” />
 
       <截距-网址 模式=“/您好*” 访问=“ hasRole('ROLE_ADMIN')” />
<登出 登出-成功-网址=“ /” 登出-网址=“ / j_spring_security_logout” />
   <csrf 残障人士=“真正”/>
    </http>
 
    <认证方式-经理>
      <认证方式-提供者>
        <用户-服务>
            <用户 名称=“ 爪哇2blog” 密码=“ 爪哇123” 当局=“ ROLE_ADMIN” />
 
        </用户-服务>
      </认证方式-提供者>
    </认证方式-经理>
 
</豆子:豆子>
 

拦截URL配置为哪种模式配置什么样的安全性。例如:如果http请求url有模式 /您好*(hello.jsp,helloworld.html),它将被访问到 ROLE_ADMIN 只要。

我们已在身份验证管理器中对用户名(java2blog)和密码(java123)进行了硬编码,因此如果用户为admin提供正确的凭据,则只有他才能访问helloworld.htm /。

我们这里没有配置任何登录页面,因此spring 安全将为我们生成一个登录页面。

步骤5: 我们需要更改web.xml以配置spring安全性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
<?XML文件 ="1.0" 编码方式=“ UTF-8”?>
<网路-应用程式 XML文件ns:si="http://www.w3.org/2001/XMLSchema-instance" XML文件ns="http://java.sun.com/xml/ns/javaee" si:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" ="3.0">
  <显示-名称>原型 已建立 网页 应用</显示-名称>
  <欢迎-文件-清单>
    <欢迎-文件>指数.jsp</欢迎-文件>
  </欢迎-文件-清单>
  <小服务程序>
    <小服务程序-名称>弹簧-调度员</小服务程序-名称>
    <小服务程序->
   组织.弹簧框架.网路.小服务程序.分派器
        </小服务程序->
    <加载--启动>1</加载--启动>
  </小服务程序>
  <小服务程序-映射>
    <小服务程序-名称>弹簧-调度员</小服务程序-名称>
    <网址-模式>/</网址-模式>
  </小服务程序-映射>
   <语境-参数>
  <参数-名称>语境ConfigLocation</参数-名称>
  <参数->
   /网页-INF/弹簧-调度员-小服务程序.XML文件,
   /网页-INF/弹簧-安全.XML文件
  </参数->
</语境-参数>
 
<听众>
  <听众->组织.弹簧框架.网路.语境.ContextLoaderListener</听众->
</听众>
 
<!- 弹簧 安全 - >
<过滤>
  <过滤-名称>弹簧SecurityFilterChain</过滤-名称>
  <过滤->组织.弹簧框架.网路.过滤.DelegatingFilterProxy</过滤->
</过滤>
 
<过滤-映射>
  <过滤-名称>弹簧SecurityFilterChain</过滤-名称>
  <网址-模式>/*</网址-模式>
</过滤-映射>
 
</网路-应用程式>
 

在这里,我们使用了DelegatingFilterProxy来拦截http请求并将其传递给springSecurityFilterChain。 弹簧SecurityFilterChain 是春天用 http 用于的元素 弹簧-security.xml。 它维护所有过滤器的列表,并负责过滤器链。
我们已经完成了弹簧安全性所需的更改。
步骤6:
It’是时候进行Maven构建了。
 
提供目标作为全新安装(如下所示)并单击运行

运行应用程序

步骤7:
Right click 上 项目 -> run as -> run 上 server
选择Apache tomcat,然后单击完成
   您将在下面的屏幕上看到:

当您单击上面的链接时,您将获得以下登录页面。

如果您输入了错误的密码并尝试登录,则会出现以下屏幕

如果输入正确的用户名和密码

答对了 !!您已成功登录。


当您单击注销时,您将返回第一个屏幕。

下载源代码:

点击开始
20KB .zip

如果以上帖子有任何问题,请发表评论。


导入联系人

您可能还喜欢:


导入联系人

您可能还喜欢:

分享这个

作者

关注作者

相关文章

  • 10 May

    春季靴 + 春季安全示例

    在这篇文章中,我们将看到如何创建Spring Boot + 春季安全示例。让’我们将看到Spring Boot如何使生活变得更简单。我将在Spring Boot hello world示例中应用Spring 安全。 Github源代码:下载Spring Boot + 春季安全示例:以下是创建Spring Boot + […]

  • 9月14日

    弹簧 休息+春季安全示例

    在本文中,我们将在Spring Rest示例中应用Spring 安全。 网页服务教程:Web服务介绍Web服务访谈问题SOAP 网页服务介绍RESTful 网页服务介绍SOAP和REST 网页服务之间的区别使用Eclipse的Java中的SOAP 网页服务示例JAX-WS 网页服务Eclipse教程JAX-WS […]

  • 9月13日

    春季安全:定制403访问被拒绝页面

    在这篇文章中,我们将看到如何自定义403访问被拒绝页面。如果用户无权访问该页面,则将显示默认的403页面,如下所示:您可以自定义以下页面的403:如果要配置自定义403访问被拒绝的页面,则有两个[…]

  • 9月12日

    春季安全数据库认证示例

    在上一篇文章中,我们已经看到了如何在Spring 安全中使用自定义登录页面。我们已经在spring-security.xml中声明了用户名和密码,但是如果您想从数据库中读取它,该怎么办。在大多数情况下,我们将从数据库中读取凭据。在本文中,我们将使用数据库进行身份验证。我们[…]

  • 1月15日

    春季安全自定义登录表单示例

    在上一篇文章中,我们使用了Spring安全框架生成的默认登录页面。在这篇文章中,我们将看到如何在Spring安全性中使用自定义登录页面。 春季MVC教程:Spring MVC你好世界示例Spring MVC休眠MySQL示例Spring MVC拦截器示例Spring MVC angularjs示例Spring MVC @RequestMapping示例Spring Component,Service,[…]

发表评论 取消回复

您的电子邮件地址不会被公开。 必需的地方已做标记 *

订阅我们的新闻

获取质量教程到您的收件箱。现在订阅。


成为朋友

©2020 爪哇2博客