Skip to content

Commit 73cec43

Browse files
committed
Extract subsections for preface
Issue: gh-2567
1 parent 8646502 commit 73cec43

File tree

11 files changed

+3159
-3151
lines changed

11 files changed

+3159
-3151
lines changed

docs/manual/src/docs/asciidoc/_includes/preface.adoc

-3,150
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
[[community]]
3+
== Spring Security Community
4+
5+
6+
[[jira]]
7+
=== Issue Tracking
8+
Spring Security uses JIRA to manage bug reports and enhancement requests.
9+
If you find a bug, please log a report using JIRA.
10+
Do not log it on the support forum, mailing list or by emailing the project's developers.
11+
Such approaches are ad-hoc and we prefer to manage bugs using a more formal process.
12+
13+
If possible, in your issue report please provide a JUnit test that demonstrates any incorrect behaviour.
14+
Or, better yet, provide a patch that corrects the issue.
15+
Similarly, enhancements are welcome to be logged in the issue tracker, although we only accept enhancement requests if you include corresponding unit tests.
16+
This is necessary to ensure project test coverage is adequately maintained.
17+
18+
You can access the issue tracker at https://github.com/spring-projects/spring-security/issues.
19+
20+
21+
[[becoming-involved]]
22+
=== Becoming Involved
23+
We welcome your involvement in the Spring Security project.
24+
There are many ways of contributing, including reading the forum and responding to questions from other people, writing new code, improving existing code, assisting with documentation, developing samples or tutorials, or simply making suggestions.
25+
26+
27+
[[further-info]]
28+
=== Further Information
29+
Questions and comments on Spring Security are welcome.
30+
You can use the Spring at Stack Overflow web site at http://spring.io/questions[http://spring.io/questions] to discuss Spring Security with other users of the framework.
31+
Remember to use JIRA for bug reports, as explained above.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
2+
[[getting-started]]
3+
== Getting Started
4+
The later parts of this guide provide an in-depth discussion of the framework architecture and implementation classes, which you need to understand if you want to do any serious customization.
5+
In this part, we'll introduce Spring Security 4.
6+
0, give a brief overview of the project's history and take a slightly gentler look at how to get started using the framework.
7+
In particular, we'll look at namespace configuration which provides a much simpler way of securing your application compared to the traditional Spring bean approach where you have to wire up all the implementation classes individually.
8+
9+
We'll also take a look at the sample applications that are available.
10+
It's worth trying to run these and experimenting with them a bit even before you read the later sections - you can dip back into them as your understanding of the framework increases.
11+
Please also check out the http://spring.
12+
io/spring-security[project website] as it has useful information on building the project, plus links to articles, videos and tutorials.
13+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
[[samples]]
2+
== Samples and Guides (Start Here)
3+
4+
If you are looking to get started with Spring Security, the best place to start is our Sample Applications.
5+
6+
.Sample Applications
7+
|===
8+
| Source | Description | Guide
9+
10+
| {gh-samples-url}/javaconfig/helloworld[Hello Spring Security]
11+
| Demonstrates how to integrate Spring Security with an existing application using Java-based configuration.
12+
| link:../../guides/html5/helloworld-javaconfig.html[Hello Spring Security Guide]
13+
14+
| {gh-samples-url}/boot/helloworld[Hello Spring Security Boot]
15+
| Demonstrates how to integrate Spring Security with an existing Spring Boot application.
16+
| link:../../guides/html5/helloworld-boot.html[Hello Spring Security Boot Guide]
17+
18+
| {gh-samples-url}/xml/helloworld[Hello Spring Security XML]
19+
| Demonstrates how to integrate Spring Security with an existing application using XML-based configuration.
20+
| link:../../guides/html5/helloworld-xml.html[Hello Spring Security XML Guide]
21+
22+
| {gh-samples-url}/javaconfig/hellomvc[Hello Spring MVC Security]
23+
| Demonstrates how to integrate Spring Security with an existing Spring MVC application.
24+
| link:../../guides/html5/hellomvc-javaconfig.html[Hello Spring MVC Security Guide]
25+
26+
| {gh-samples-url}/javaconfig/form[Custom Login Form]
27+
| Demonstrates how to create a custom login form.
28+
| link:../../guides/html5/form-javaconfig.html[Custom Login Form Guide]
29+
30+
| {gh-samples-url}/boot/oauth2login[OAuth 2.0 Login]
31+
| Demonstrates how to integrate OAuth 2.0 Login with an OAuth 2.0 or OpenID Connect 1.0 Provider.
32+
| link:{gh-samples-url}/boot/oauth2login/README.adoc[OAuth 2.0 Login Guide]
33+
34+
|===
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
[[preface]]
2+
= Preface
3+
Spring Security provides a comprehensive security solution for Java EE-based enterprise software applications.
4+
As you will discover as you venture through this reference guide, we have tried to provide you a useful and highly configurable security system.
5+
6+
Security is an ever-moving target, and it's important to pursue a comprehensive, system-wide approach.
7+
In security circles we encourage you to adopt "layers of security", so that each layer tries to be as secure as possible in its own right, with successive layers providing additional security.
8+
The "tighter" the security of each layer, the more robust and safe your application will be.
9+
At the bottom level you'll need to deal with issues such as transport security and system identification, in order to mitigate man-in-the-middle attacks.
10+
Next you'll generally utilise firewalls, perhaps with VPNs or IP security to ensure only authorised systems can attempt to connect.
11+
In corporate environments you may deploy a DMZ to separate public-facing servers from backend database and application servers.
12+
Your operating system will also play a critical part, addressing issues such as running processes as non-privileged users and maximising file system security.
13+
An operating system will usually also be configured with its own firewall.
14+
Hopefully somewhere along the way you'll be trying to prevent denial of service and brute force attacks against the system.
15+
An intrusion detection system will also be especially useful for monitoring and responding to attacks, with such systems able to take protective action such as blocking offending TCP/IP addresses in real-time.
16+
Moving to the higher layers, your Java Virtual Machine will hopefully be configured to minimize the permissions granted to different Java types, and then your application will add its own problem domain-specific security configuration.
17+
Spring Security makes this latter area - application security - much easier.
18+
19+
Of course, you will need to properly address all security layers mentioned above, together with managerial factors that encompass every layer.
20+
A non-exhaustive list of such managerial factors would include security bulletin monitoring, patching, personnel vetting, audits, change control, engineering management systems, data backup, disaster recovery, performance benchmarking, load monitoring, centralised logging, incident response procedures etc.
21+
22+
With Spring Security being focused on helping you with the enterprise application security layer, you will find that there are as many different requirements as there are business problem domains.
23+
A banking application has different needs from an ecommerce application.
24+
An ecommerce application has different needs from a corporate sales force automation tool.
25+
These custom requirements make application security interesting, challenging and rewarding.
26+
27+
Please read <<getting-started>>, in its entirety to begin with.
28+
This will introduce you to the framework and the namespace-based configuration system with which you can get up and running quite quickly.
29+
To get more of an understanding of how Spring Security works, and some of the classes you might need to use, you should then read <<overall-architecture>>.
30+
The remaining parts of this guide are structured in a more traditional reference style, designed to be read on an as-required basis.
31+
We'd also recommend that you read up as much as possible on application security issues in general.
32+
Spring Security is not a panacea which will solve all security issues.
33+
It is important that the application is designed with security in mind from the start.
34+
Attempting to retrofit it is not a good idea.
35+
In particular, if you are building a web application, you should be aware of the many potential vulnerabilities such as cross-site scripting, request-forgery and session-hijacking which you should be taking into account from the start.
36+
The OWASP web site (http://www.
37+
owasp.
38+
org/) maintains a top ten list of web application vulnerabilities as well as a lot of useful reference information.
39+
40+
We hope that you find this reference guide useful, and we welcome your feedback and <<jira,suggestions>>.
41+
42+
Finally, welcome to the Spring Security <<community,community>>.
43+
44+
include::getting-started.adoc[]
45+
46+
include::introduction.adoc[]
47+
48+
include::whats-new.adoc[]
49+
50+
include::guides.adoc[]
51+
52+
include::java-configuration.adoc[]
53+
54+
include::namespace.adoc[]
55+
56+
include::samples.adoc[]
57+
58+
include::community.adoc[]

0 commit comments

Comments
 (0)