Add Reactive Getting Started Page

This commit is contained in:
Rob Winch 2021-09-20 16:51:25 -05:00
parent 7537aa5124
commit 0d339aeda6
2 changed files with 81 additions and 0 deletions

View File

@ -81,6 +81,7 @@
*** xref:servlet/appendix/namespace.adoc[XML Namespace]
*** xref:servlet/appendix/faq.adoc[FAQ]
* xref:reactive/index.adoc[Reactive Applications]
** xref:reactive/getting-started.adoc[Getting Started]
** xref:reactive/webflux.adoc[WebFlux Security]
** xref:reactive/exploits/index.adoc[Protection Against Exploits]
*** xref:reactive/exploits/csrf.adoc[CSRF]

View File

@ -0,0 +1,80 @@
[[getting-started]]
= Getting Started with WebFlux Applications
This section covers the minimum setup for how to use Spring Security with Spring Boot in a reactive application.
[NOTE]
====
The completed application can be found {gh-samples-url}/reactive/webflux/java/hello-security[in our samples repository].
For your convenience, you can download a minimal Reactive Spring Boot + Spring Security application by https://start.spring.io/starter.zip?type=maven-project&language=java&packaging=jar&jvmVersion=1.8&groupId=example&artifactId=hello-security&name=hello-security&description=Hello%20Security&packageName=example.hello-security&dependencies=webflux,security[clicking here].
====
[[dependencies]]
== Updating Dependencies
You can add Spring Security to your Spring Boot project by adding `spring-boot-starter-security`.
====
.Maven
[source,xml,role="primary"]
----
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
----
.Gradle
[source,groovy,role="secondary"]
----
implementation 'org.springframework.boot:spring-boot-starter-security'
----
====
[[servlet-hello-starting]]
== Starting Hello Spring Security Boot
You can now https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-running-with-the-maven-plugin[run the Spring Boot application] by using the Maven Plugin's `run` goal.
The following example shows how to do so (and the beginning of the output from doing so):
.Running Spring Boot Application
====
.Maven
[source,bash,role="primary"]
----
$ ./mvnw spring-boot:run
...
INFO 23689 --- [ restartedMain] .s.s.UserDetailsServiceAutoConfiguration :
Using generated security password: 8e557245-73e2-4286-969a-ff57fe326336
...
----
.Gradle
[source,bash,role="secondary"]
----
$ ./gradlew bootRun
...
INFO 23689 --- [ restartedMain] .s.s.UserDetailsServiceAutoConfiguration :
Using generated security password: 8e557245-73e2-4286-969a-ff57fe326336
...
----
====
[[authenticating]]
== Authenticating
You can access the application at http://localhost:8080/ which will redirect the browser to the default log in page. You can provide the default username of `user` with the randomly generated password that is logged to the console. The browser is then taken to the orginally requested page.
To log out you can visit http://localhost:8080/logout and then confirming you wish to log out.
[[auto-configuration]]
== Spring Boot Auto Configuration
Spring Boot automatically adds Spring Security which requires all requests be authenticated. It also generates a user with a randomly generated password that is logged to the console which can be used to authenticate using form or basic authentication.