春季靴 + 春季安全示例
在这篇文章中,我们 will see how 至 create 弹簧 开机 + 春季安全示例.
让’我们将看到竞彩篮球分析 Boot如何使生活变得更简单。我将在 春季靴你好世界示例.
Github源代码:
春季靴 + 春季安全示例:
以下是创建竞彩篮球分析 Boot + 春季安全示例的步骤。
项目结构:
用于创建以下项目的工具:
- 春季靴 1.5.3。发布
- 春天4.3.8。发布
- Tomcat嵌入8
- 马文 3
- 爪哇 8
- 蚀
马文 依赖项:
第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 启用Spring 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.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访问该项目。
当你点击“点击这里阅读你好消息”链接,您将进入屏幕下方。
如果您输入正确的用户名和密码,您将看到以下屏幕。
如果您输入了错误的用户名或密码,然后单击登录,则会出现以下屏幕。
那’关于竞彩篮球分析 Boot + 弹簧 安全性示例的全部内容。如果您发现此项目有任何问题,请发表评论。