爪哇 2博客
 爪哇 2博客

春季靴 + 春季安全示例

在这篇文章中,我们 will see how 至 create 弹簧 开机 + 春季安全示例.
让’我们将看到竞彩篮球分析 Boot如何使生活变得更简单。我将在 春季靴你好世界示例.

Github源代码:

春季靴 + 春季安全示例:

以下是创建竞彩篮球分析 Boot + 春季安全示例的步骤。

项目结构:

春季靴 春季安全项目结构

 

用于创建以下项目的工具:

  1. 春季靴 1.5.3。发布
  2. 春天4.3.8。发布
  3. Tomcat嵌入8
  4. 马文 3
  5. 爪哇 8
步骤1:  创建一个 在Eclipse中使用Maven的动态Web项目 名为“ 弹簧 Boot竞彩篮球分析SecurityExample”。

马文 依赖项:

第2步:  如下更改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
 
< 项目 xmlns ="http://maven.apache.org/POM/4.0.0" xmlns : 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 > 组织 . Arpit . 爪哇 2blog</ groupId >
    <artifactId> 弹簧 Boot竞彩篮球分析SecurityExample</artifactId>
    <打包> 战争 </打包>
    <>0.0.1-快照</>
    < 名称 > 弹簧 Boot竞彩篮球分析SecurityExample 马文 网络应用 </ 名称 >
    < 网址 > http ://maven.apache.org</url>
    < 父母 >
        < groupId > 组织 .弹簧框架. 开机 </ groupId >
        <artifactId> 弹簧 - 开机 - 起动机 - 父母 </artifactId>
        <>1.5.3。发布</>
    </ 父母 >
    <依存关系>
        <依赖>
            < groupId > 组织 .弹簧框架. 开机 </ groupId >
            <artifactId> 弹簧 - 开机 - 起动机 - 网路 </artifactId>
        </依赖>
        <! - 标签 :: 安全[] - >
        <依赖>
            < groupId > 组织 .弹簧框架. 开机 </ groupId >
            <artifactId> 弹簧 - 开机 - 起动机 -安全</artifactId>
        </依赖>
        <! - JSTL 对于 JSP - >
        <依赖>
            < groupId > 爪哇 x . 小服务程序 </ groupId >
            <artifactId> jstl </artifactId>
        </依赖>
 
        <! - 对于 JSP 汇编 - >
        <依赖>
            < groupId > 组织 . 阿帕奇 . 雄猫 . 嵌入 </ groupId >
            <artifactId> 雄猫 - 嵌入 - 碧玉 </artifactId>
            < 范围 >提供</ 范围 >
        </依赖>
    </依存关系>
    < 建立 >
        <finalName> 弹簧 Boot竞彩篮球分析SecurityExample</finalName>
    </ 建立 >
</ 项目 >
 

弹簧 -boot-starter-parent提供了任何spring项目所需的所有maven默认值。
由于我们正在开发Web应用程序,因此我们还需要添加spring-boot-starter-web依赖关系,并且还需要包括spring-boot-starter-security以保护此Web应用程序的安全。
如果您注意到,我们没有为特定组件提供任何版本。您只需要提供版本号(1.5.3.RELEASE)即可启动弹簧。
步骤3: 创建一个名为"org.arpit.java2blog.springboot"
创建一个名为的控制器类 "HelloWorldController.java"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
组织 . Arpit . 爪哇 2blog.弹簧.控制者;
 
进口 组织 .弹簧框架.刻板印象.控制者;
进口 组织 .弹簧框架. 网路 . 捆绑 .注解.请求映射;
进口 组织 .弹簧框架. 网路 . 小服务程序 .模型和视图;
 
@控制者
上市 你好世界Controller {
 
@请求映射(“/你好世界”)
上市 模型和视图 您好 () {
 
   您好 WorldMessage = “来自java2blog的世界!”;
   返回 模型和视图( “您好” , “信息”, 您好 WorldMessage);
}
}
 

请求首先发送到dispatcherServlet,然后重定向到控制器类。在这里@Controller描述这是我们的控制器类。 @RequestMapper用于将传入的HTTP请求映射到处理程序方法(上面的控制器中的hello())。因此HelloWorldController.java的hello()方法将处理来自调度程序的GET请求。

1
2
3
4
 
http :// localhost:8080 / 您好 world或
http ://localhost:8080/helloworld.html
 

上面的方法会被调用。
步骤4: 创建一个名为“Web安全配置.java”在org.arpit.java2blog包中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
组织 . Arpit . 爪哇 2blog;
 
进口 组织 .弹簧框架. 豆子 ..注解.自动接线;
进口 组织 .弹簧框架. 语境 .注解.组态;
进口 组织 .弹簧框架.安全. 配置 .注解.认证方式.建设者.AuthenticationManagerBuilder;
进口 组织 .弹簧框架.安全. 配置 .注解. 网路 .建设者.HttpSecurity;
@组态
@启用网络安全
上市 Web安全配置 延伸 WebSecurityConfigurerAdapter {
    @覆写
    受保护的 虚空 配置(HttpSecurity http ) 抛出 例外 {
 
         http . 认证 orizeRequests()
        .antMatchers(“/您好*”). 访问 (“ hasRole('ROLE_ADMIN')”).().表单登录();;
    }
 
    @自动接线
     上市 虚空 配置Global(AuthenticationManagerBuilder 认证 ) 抛出 例外 {
         认证 .inMemoryAuthentication().withUser(“ 爪哇 2blog”).密码(“ 爪哇 123”). 角色 ( “ ADMIN” );
    }
}
 

@EnableWebSecurity批注用于为此Web应用程序启用竞彩篮球分析安全性。

认证 roizeRequest()。addMatchers()方法用于配置请求模式。例如:如果http请求url具有模式/hello*(hello.jsp,helloworld.html),则仅将其访问ROLE_ADMIN。

我们使用inMemoryAuthentication()对用户名(java2blog)和密码(java123)进行了硬编码,因此如果用户为admin提供正确的凭据,则只有他才能访问helloworld.html。
步骤4: 创建一个名为“org.arpit.java2blog”
创建一个名为 “竞彩篮球分析BootHelloWorldApplication.java”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
组织 . Arpit . 爪哇 2blog;
进口 组织 .弹簧框架. 开机 . 弹簧 应用;
进口 组织 .弹簧框架. 开机 .自动配置. 弹簧 Boot应用程序;
 
@ 弹簧 Boot应用程序
上市 弹簧 BootHelloWorldApplication {
 
     上市 静态的 虚空 主要 ([] args )
    {
         弹簧 应用.( 弹簧 BootHelloWorldApplication., args );  
    }
}
 

我们刚刚添加了@竞彩篮球分析Boot应用程序,它可以完成所有工作。
让’进一步了解此注释。
@竞彩篮球分析Boot应用程序 是添加以下所有内容的注释:

@组态 使该类成为应用程序上下文的Bean定义的源。
@EnableAutoConfiguration 启用S​​pring Boot以在类路径设置和各种属性设置中添加bean。
通常您会添加 @EnableWebMvc 用于竞彩篮球分析 MVC应用程序,但是当竞彩篮球分析 Boot在类路径上看到spring-webmvc时,它将自动添加它。
这会将应用程序标记为Web应用程序,并激活诸如设置DispatcherServlet之类的关键行为。
@ComponentScan 告诉竞彩篮球分析在默认包中寻找其他组件,配置和服务,从而允许它找到控制器。
如果未定义特定的程序包,则将从声明此批注的类的程序包中进行扫描。

步骤5: 如下创建一个名为application.properties的属性文件,并将其放在src / 主要 / resoures中。

弹簧 .mvc.view.prefix:/ WEB-INF /
弹簧 .mvc.view.suffix:.jsp

上面的两个属性与springmvc-dispatcher-servlet.xml中使用的非常相似 春季MVC示例.

步骤7: 修改index.jsp如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<%@ 语言= “ 爪哇 ” 内容类型=“文本/ 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”>
< 标题 >你好世界</ 标题 >
</>
< 身体 >
<a href =“ 您好 world.html”> 请点击 这里 您好 信息 </a>
</ br >
<a href ="<c:url value="/ 登出 / >"> 登出 </a>
</ 身体 >
</ html >
 

步骤7: 在/ WEB-INF /文件夹中创建hello.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<%@ 语言= “ 爪哇 ” 内容类型=“文本/ html ; charset = UTF-8”
页 Encoding= “ UTF-8” %>
<!DOCTYPE html 上市 “-// W3C // DTD HTML 4.01 Transitional // EN” "http://www.w3.org/TR/html4/loose.dtd">
< html >
<>
< http - 当量 =“内容类型” 内容 =“文本/ html ; charset = UTF-8”>
< 标题 > 您好 </ 标题 >
</>
< 身体 >
${信息}
</ 身体 >
</ html >
 

那’关于竞彩篮球分析 Boot 您好 world示例的全部内容。
步骤8: 现在该进行Maven构建了。

右键点击项目-> Run as -> 马文 建立

步骤9: 提供目标为全新安装spring-boot:run(如下所示),然后单击run

春季靴 春季安全  马文 构建

您将在控制台看到以下输出。请注意,我在这里已截断了输出:

2017-05-06 01:02:53.086信息16095—[ost-startStop-1] o.a.c.c.C. [Tomcat]。[localhost]。[/]:初始化竞彩篮球分析嵌入式WebApplicationContext
2017-05-06 01:02:53.086信息16095—[ost-startStop-1] o.s.web.context.ContextLoader:根WebApplicationContext:初始化在8060毫秒内完成
2017-05-06 01:02:53.773信息16095—[ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:‘characterEncodingFilter’ 至 : [/*]
2017-05-06 01:02:53.774信息16095—[ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:‘hiddenHttpMethodFilter’ 至 : [/*]
2017-05-06 01:02:53.774信息16095—[ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:‘httpPutFormContentFilter’ 至 : [/*]
2017-05-06 01:02:53.774信息16095—[ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean:映射过滤器:‘requestContextFilter’ 至 : [/*]
2017-05-06 01:02:53.776信息16095—[ost-startStop-1] .s.DelegatingFilterProxyRegistrationBean:映射过滤器:‘springSecurityFilterChain’ 至 : [/*]
2017-05-06 01:02:53.776信息16095—[ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean:映射servlet:‘dispatcherServlet’ 至 [/]
2017-05-06 01:02:54.699信息16095—[main] ossweb.DefaultSecurityFilterChain:创建过滤器链:org.springframework.security.web.util.matcher.AnyRequestMatcher@1,[org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@16adb5a1,org.springframework .security.web.context.SecurityContextPersistenceFilter @ 31094dc4,org.springframework.security.web.header.HeaderWriterFilter@496c7d01,org.springframework.security.web.csrf.CsrfFilter@3005d2e1,org.springframework.security.web.authentication.logout .LogoutFilter @ 2d7ecd73,org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@6c308887,org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter@514797af,org.springframework.security.web.savedreorg.RequestCacheAwareFilter@14a08616, .springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter @ 3f373a85,org.springframework.security.web.authentication.AnonymousAuthenticationFilter@41b1e420,org.springframework.sec 乌里 ty.web.session.SessionManagementFilter @ 61184671,org.springframework.security.web.access.ExceptionTranslationFilter @ 4716657,org.springframework.security.web.access.intercept.FilterSecurityInterceptor @ 216679a4]
2017-05-06 01:02:54.846信息16095—[main] s.w.s.m.m.a.RequestMappingHandlerAdapter:寻找@ControllerAdvice:org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@6d29ef13:启动日期[IST 2017年5月6日星期六01:02:45];上下文层次结构的根
2017-05-06 01:02:54.988信息16095—[main] s.w.s.m.m.a.RequestMappingHandlerMapping:已映射“{[/helloworld]}”到公共org.springframework.web.servlet.ModelAndView 组织 .arpit.java2blog.springboot.HelloWorldController.hello()上
2017-05-06 01:02:54.990信息16095—[main] s.w.s.m.m.a.RequestMappingHandlerMapping:已映射“{[/ 登出 ],methods = [GET]}”到公共java.lang.String 组织 .arpit.java2blog.springboot.HelloWorldController.logoutPage(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)上
2017-05-06 01:02:54.997信息16095—[main] s.w.s.m.m.a.RequestMappingHandlerMapping:已映射“{[/error]}”到公共org.springframework.http.ResponseEntity<java.util.Map<java.lang.String,java.lang.Object>>org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2017-05-06 01:02:54.997信息16095—[main] s.w.s.m.m.a.RequestMappingHandlerMapping:已映射“{[/ error],produces = [text / html ]}”到公共org.springframework.web.servlet.ModelAndView 组织 .springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)上
2017-05-06 01:02:55.037信息16095—[main] o.s.w.s.handler.SimpleUrlHandlerMapping:将URL路径[/ 网路 jars / **]映射到[class 组织 .springframework.web.servlet.resource.ResourceHttpRequestHandler]类型的处理程序上
2017-05-06 01:02:55.038信息16095—[main] o.s.w.s.handler.SimpleUrlHandlerMapping:将URL路径[/ **]映射到类型为[class 组织 .springframework.web.servlet.resource.ResourceHttpRequestHandler]的处理程序上
2017-05-06 01:02:55.092信息16095—[main] o.s.w.s.handler.SimpleUrlHandlerMapping:将URL路径[/**/favicon.ico]映射到[class 组织 .springframework.web.servlet.resource.ResourceHttpRequestHandler]类型的处理程序上
2017-05-06 01:02:55.406信息16095—[main] o.s.j.e.a.AnnotationMBeanExporter:在启​​动时为JMX公开注册bean
2017-05-06 01:02:55.627信息16095 —[main] s.b.c.e.t.TomcatEmbeddedServletContainer:Tomcat在以下端口上启动:8080(http)
2017-05-06 01:02:55.636信息16095—[main] o.a.j.竞彩篮球分析BootHelloWorldApplication:在12.511秒内启动竞彩篮球分析BootHelloWorldApplication(JVM运行34.07)

步骤10: 让’现在测试应用程序。
由于竞彩篮球分析使用嵌入式tomcat,因此您可以使用http:// localhost:8080 / index.jsp访问该项目。

春季安全指数

当你点击“点击这里阅读你好消息”链接,您将进入屏幕下方。

如果您输入正确的用户名和密码,您将看到以下屏幕。
春季靴  您好  World

如果您输入了错误的用户名或密码,然后单击登录,则会出现以下屏幕。

春季安全不正确的凭据
那’关于竞彩篮球分析 Boot + 弹簧 安全性示例的全部内容。如果您发现此项目有任何问题,请发表评论。


导入联系人

您可能还喜欢:


导入联系人

您可能还喜欢:

分享这个

作者

关注作者

相关文章

  • 1月11日

    春季靴 JDBC示例

    在本文中,我们将看到竞彩篮球分析 开机 JDBC示例。众所周知,竞彩篮球分析 Boot会执行许多自动配置,这有助于我们避免大量样板代码。对于JDBC,spring 开机 提供了自动配置,例如根据application.properties自动创建DataSource和JDBCTemplate对象。所以你只需要[…]

  • 一月02

    春季靴开发工具教程

    在这篇文章中,我们’我会一直在寻找spring为开发人员提供的体验。概述使用Eclipse,竞彩篮球分析 Tool Suite和Intellij Idea等IDE,一个典型的开发设置包括一个应用程序代码库,该代码库已部署在Web应用程序服务器上,例如Wildfly或Tomcat甚至Glassfish。发展的速度是[…]

  • 12月26日

    春季靴 H2数据库示例

    在这篇文章中,我们 are going 至 see how 至 create 弹簧 开机 application integrating with H2 database. What is H2 database? H2 is open source database. It is very fast 和 smaller in size. It is in-memory database 和 keeps all data in memory. If you start 和 stop the application, all the data […]

  • 12月22日

    春季靴 Crud存储库

    在这篇文章中,我们’我将寻找如何创建和使用竞彩篮球分析 Boot Crud存储库。 弹簧 Boot CrudRepository为您要管理的实体类型提供了完善的CRUD功能。该接口主要用作标记接口,以捕获要使用的类型并帮助您发现扩展此[…]

  • 4月10日

    弹簧 和竞彩篮球分析 Boot之间的区别

    在这篇文章中,我们 will see difference between 弹簧 和 弹簧 开机 . If you have followed 弹簧 项目 over time, you might have noticed it has become increasingly complex. If you want 至 create a 弹簧 application, you still need 至 put a lot of efforts. 弹簧 开机 is introduced 至 save time 至 开机 strap […]

  • 9月17日

    春季靴 SOAP Web服务示例

    在这篇文章中,我们 will see how 至 create soap 网路 services with 弹簧 开机 . We will create contract first soap 网路 service with 弹簧 开机 . We will focus on how 至 define 配置 urations 对于 soap 网路 services. Tools used JDK 1.8, 蚀, 马文 弹簧 -boot – Underlying application framework wsdl4j – 对于 publishing WSDL 对于 our […]

发表评论

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

订阅我们的新闻

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

 src=

让’s be Friends

©2020 爪哇 2博客