Skip to content

Commit 08b69e7

Browse files
authored
Merge Project Modules and Dependencies Section of the docs
Closes gh-8199
1 parent d31fff1 commit 08b69e7

File tree

3 files changed

+226
-264
lines changed

3 files changed

+226
-264
lines changed

docs/manual/src/docs/asciidoc/_includes/about/modules.adoc

Lines changed: 226 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
// FIXME: This might make sense in Getting Spring Security along with the artifact information
22

33
[[modules]]
4-
= Project Modules
4+
= Project Modules and Dependencies
55
In Spring Security 3.0, the codebase was sub-divided into separate jars which more clearly separate different functionality areas and third-party dependencies.
66
If you use Maven to build your project, these are the modules you should add to your `pom.xml`.
77
Even if you do not use Maven, we recommend that you consult the `pom.xml` files to get an idea of third-party dependencies and versions.
88
Another good idea is to examine the libraries that are included in the sample applications.
9+
This section provides a reference of the modules in Spring Security and the additional dependencies that they require in order to function in a running application.
10+
We don't include dependencies that are only used when building or testing Spring Security itself.
11+
Nor do we include transitive dependencies which are required by external dependencies.
12+
13+
The version of Spring required is listed on the project website, so the specific versions are omitted for Spring dependencies below.
14+
Note that some of the dependencies listed as "optional" below may still be required for other non-security functionality in a Spring application.
15+
Also dependencies listed as "optional" may not actually be marked as such in the project's Maven POM files if they are used in most applications.
16+
They are "optional" only in the sense that you don't need them unless you are using the specified functionality.
17+
18+
Where a module depends on another Spring Security module, the non-optional dependencies of the module it depends on are also assumed to be required and are not listed separately.
919

1020

1121
[[spring-security-core]]
@@ -20,12 +30,62 @@ It contains the following top-level packages:
2030
* `org.springframework.security.authentication`
2131
* `org.springframework.security.provisioning`
2232

33+
.Core Dependencies
34+
|===
35+
| Dependency | Version | Description
36+
37+
| ehcache
38+
| 1.6.2
39+
| Required if the Ehcache-based user cache implementation is used (optional).
40+
41+
| spring-aop
42+
|
43+
| Method security is based on Spring AOP
44+
45+
| spring-beans
46+
|
47+
| Required for Spring configuration
48+
49+
| spring-expression
50+
|
51+
| Required for expression-based method security (optional)
52+
53+
| spring-jdbc
54+
|
55+
| Required if using a database to store user data (optional).
56+
57+
| spring-tx
58+
|
59+
| Required if using a database to store user data (optional).
60+
61+
| aspectjrt
62+
| 1.6.10
63+
| Required if using AspectJ support (optional).
64+
65+
| jsr250-api
66+
| 1.0
67+
| Required if you are using JSR-250 method-security annotations (optional).
68+
|===
69+
70+
2371
[[spring-security-remoting]]
2472
== Remoting -- `spring-security-remoting.jar`
2573
This module provides integration with Spring Remoting.
2674
You do not need this unless you are writing a remote client that uses Spring Remoting.
2775
The main package is `org.springframework.security.remoting`.
2876

77+
.Remoting Dependencies
78+
|===
79+
| Dependency | Version | Description
80+
81+
| spring-security-core
82+
|
83+
|
84+
85+
| spring-web
86+
|
87+
| Required for clients which use HTTP remoting support.
88+
|===
2989

3090
[[spring-security-web]]
3191
== Web -- `spring-security-web.jar`
@@ -34,6 +94,26 @@ It contains anything with a servlet API dependency.
3494
You need it if you require Spring Security web authentication services and URL-based access-control.
3595
The main package is `org.springframework.security.web`.
3696

97+
.Web Dependencies
98+
|===
99+
| Dependency | Version | Description
100+
101+
| spring-security-core
102+
|
103+
|
104+
105+
| spring-web
106+
|
107+
| Spring web support classes are used extensively.
108+
109+
| spring-jdbc
110+
|
111+
| Required for JDBC-based persistent remember-me token repository (optional).
112+
113+
| spring-tx
114+
|
115+
| Required by remember-me persistent token repository implementations (optional).
116+
|===
37117

38118
[[spring-security-config]]
39119
== Config -- `spring-security-config.jar`
@@ -42,13 +122,67 @@ You need it if you use the Spring Security XML namespace for configuration or Sp
42122
The main package is `org.springframework.security.config`.
43123
None of the classes are intended for direct use in an application.
44124

125+
.Config Dependencies
126+
|===
127+
| Dependency | Version | Description
128+
129+
| spring-security-core
130+
|
131+
|
132+
133+
| spring-security-web
134+
|
135+
| Required if you are using any web-related namespace configuration (optional).
136+
137+
| spring-security-ldap
138+
|
139+
| Required if you are using the LDAP namespace options (optional).
140+
141+
| spring-security-openid
142+
|
143+
| Required if you are using OpenID authentication (optional).
144+
145+
| aspectjweaver
146+
| 1.6.10
147+
| Required if using the protect-pointcut namespace syntax (optional).
148+
|===
45149

46150
[[spring-security-ldap]]
47151
== LDAP -- `spring-security-ldap.jar`
48152
This module provides LDAP authentication and provisioning code.
49153
It is required if you need to use LDAP authentication or manage LDAP user entries.
50154
The top-level package is `org.springframework.security.ldap`.
51155

156+
.LDAP Dependencies
157+
|===
158+
| Dependency | Version | Description
159+
160+
| spring-security-core
161+
|
162+
|
163+
164+
| spring-ldap-core
165+
| 1.3.0
166+
| LDAP support is based on Spring LDAP.
167+
168+
| spring-tx
169+
|
170+
| Data exception classes are required.
171+
172+
| apache-ds footnote:[The modules `apacheds-core`, `apacheds-core-entry`, `apacheds-protocol-shared`, `apacheds-protocol-ldap` and `apacheds-server-jndi` are required.
173+
]
174+
| 1.5.5
175+
| Required if you are using an embedded LDAP server (optional).
176+
177+
| shared-ldap
178+
| 0.9.15
179+
| Required if you are using an embedded LDAP server (optional).
180+
181+
| ldapsdk
182+
| 4.1
183+
| Mozilla LdapSDK.
184+
Used for decoding LDAP password policy controls if you are using password-policy functionality with OpenLDAP, for example.
185+
|===
52186

53187
[[spring-security-oauth2-core]]
54188
== OAuth 2.0 Core -- `spring-security-oauth2-core.jar`
@@ -92,13 +226,54 @@ This module contains a specialized domain object ACL implementation.
92226
It is used to apply security to specific domain object instances within your application.
93227
The top-level package is `org.springframework.security.acls`.
94228

229+
.ACL Dependencies
230+
|===
231+
| Dependency | Version | Description
232+
233+
| spring-security-core
234+
|
235+
|
236+
237+
| ehcache
238+
| 1.6.2
239+
| Required if the Ehcache-based ACL cache implementation is used (optional if you are using your own implementation).
240+
241+
| spring-jdbc
242+
|
243+
| Required if you are using the default JDBC-based AclService (optional if you implement your own).
244+
245+
| spring-tx
246+
|
247+
| Required if you are using the default JDBC-based AclService (optional if you implement your own).
248+
|===
95249

96250
[[spring-security-cas]]
97251
== CAS -- `spring-security-cas.jar`
98252
This module contains Spring Security's CAS client integration.
99253
You should use it if you want to use Spring Security web authentication with a CAS single sign-on server.
100254
The top-level package is `org.springframework.security.cas`.
101255

256+
.CAS Dependencies
257+
|===
258+
| Dependency | Version | Description
259+
260+
| spring-security-core
261+
|
262+
|
263+
264+
| spring-security-web
265+
|
266+
|
267+
268+
| cas-client-core
269+
| 3.1.12
270+
| The JA-SIG CAS Client.
271+
This is the basis of the Spring Security integration.
272+
273+
| ehcache
274+
| 1.6.2
275+
| Required if you are using the Ehcache-based ticket cache (optional).
276+
|===
102277

103278
[[spring-security-openid]]
104279
== OpenID -- `spring-security-openid.jar`
@@ -110,7 +285,57 @@ It is used to authenticate users against an external OpenID server.
110285
The top-level package is `org.springframework.security.openid`.
111286
It requires OpenID4Java.
112287

288+
.OpenID Dependencies
289+
|===
290+
| Dependency | Version | Description
291+
292+
| spring-security-core
293+
|
294+
|
295+
296+
| spring-security-web
297+
|
298+
|
299+
300+
| openid4java-nodeps
301+
| 0.9.6
302+
| Spring Security's OpenID integration uses OpenID4Java.
303+
304+
| httpclient
305+
| 4.1.1
306+
| openid4java-nodeps depends on HttpClient 4.
307+
308+
| guice
309+
| 2.0
310+
| openid4java-nodeps depends on Guice 2.
311+
|===
312+
113313

114314
[[spring-security-test]]
115315
== Test -- `spring-security-test.jar`
116316
This module contains support for testing with Spring Security.
317+
318+
[[spring-security-taglibs]]
319+
== Taglibs -- `spring-secuity-taglibs.jar`
320+
Provides Spring Security's JSP tag implementations.
321+
322+
.Taglib Dependencies
323+
|===
324+
| Dependency | Version | Description
325+
326+
| spring-security-core
327+
|
328+
|
329+
330+
| spring-security-web
331+
|
332+
|
333+
334+
| spring-security-acl
335+
|
336+
| Required if you are using the `accesscontrollist` tag or `hasPermission()` expressions with ACLs (optional).
337+
338+
| spring-expression
339+
|
340+
| Required if you are using SPEL expressions in your tag access constraints.
341+
|===

0 commit comments

Comments
 (0)