appendix-dependencies.xml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <appendix version="5.0" xml:id="appendix-dependencies" xmlns="http://docbook.org/ns/docbook"
  3. xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
  4. <info>
  5. <title>Spring Security Dependencies</title>
  6. </info>
  7. <para>
  8. This appendix provides a reference of the modules in Spring Security and the additional
  9. dependencies that they require in order to function in a running application. We don't include
  10. dependenices that are only used when building or testing Spring Security itself. Nor do we include
  11. transitive dependencies which are required by external dependencies.
  12. </para>
  13. <para>The version of Spring required is listed on the project website, so the specific versions
  14. are omitted for Spring dependencies below. Note that some of the dependencies listed as
  15. <quote>optional</quote> below may still be required for other non-security functionality in
  16. a Spring application. Also dependencies listed as <quote>optional</quote> may not actually be marked
  17. as such in the project's Maven pom files if they are used in most applications. They are
  18. <quote>optional</quote> only in the sense that you don't need them unless you are using the
  19. specified functionality.</para>
  20. <para>Where a module depends on another Spring Security module, the non-optional dependencies of the
  21. module it depends on are also assumed to be required and are not listed separately.
  22. </para>
  23. <section>
  24. <title><literal>spring-security-core</literal></title>
  25. <para>The core module must be included in any project using Spring Security.
  26. <table xml:id="deps-core">
  27. <title>Core Depenendencies</title>
  28. <tgroup cols="3" align="left">
  29. <colspec colnum="1" colname="col1" colwidth="2*"/>
  30. <colspec colnum="2" colname="col2" colwidth="1*"/>
  31. <colspec colnum="3" colname="col3" colwidth="3*"/>
  32. <thead>
  33. <row>
  34. <entry align="center">Dependency</entry>
  35. <entry align="center">Version</entry>
  36. <entry align="center">Description</entry>
  37. </row>
  38. </thead>
  39. <tbody>
  40. <row>
  41. <entry>aopalliance</entry>
  42. <entry>1.0</entry>
  43. <entry><para>Required for method security implementation.</para></entry>
  44. </row>
  45. <row>
  46. <entry>ehcache</entry>
  47. <entry>1.6.2</entry>
  48. <entry><para>Required if the ehcache-based user cache implementation is used (optional).</para></entry>
  49. </row>
  50. <row>
  51. <entry>spring-aop</entry>
  52. <entry></entry>
  53. <entry><para>Method security is based on Spring AOP</para></entry>
  54. </row>
  55. <row>
  56. <entry>spring-beans</entry>
  57. <entry></entry>
  58. <entry><para>Required for Spring configuration</para></entry>
  59. </row>
  60. <row>
  61. <entry>spring-expression</entry>
  62. <entry></entry>
  63. <entry><para>Required for expression-based method security (optional)</para></entry>
  64. </row>
  65. <row>
  66. <entry>spring-jdbc</entry>
  67. <entry></entry>
  68. <entry><para>Required if using a database to store user data (optional).</para></entry>
  69. </row>
  70. <row>
  71. <entry>spring-tx</entry>
  72. <entry></entry>
  73. <entry><para>Required if using a database to store user data (optional).</para></entry>
  74. </row>
  75. <row>
  76. <entry>aspectjrt</entry>
  77. <entry>1.6.10</entry>
  78. <entry><para>Required if using AspectJ support (optional).</para></entry>
  79. </row>
  80. <row>
  81. <entry>jsr250-api</entry>
  82. <entry>1.0</entry>
  83. <entry><para>Required if you are using JSR-250 method-security annotations (optional).</para></entry>
  84. </row>
  85. </tbody>
  86. </tgroup>
  87. </table>
  88. </para>
  89. </section>
  90. <section>
  91. <title><literal>spring-security-remoting</literal></title>
  92. <para>This module is typically required in web applications which use the Servlet API.
  93. <table xml:id="deps-remoting">
  94. <title>Remoting Dependencies</title>
  95. <tgroup cols="3" align="left">
  96. <colspec colnum="1" colname="col1" colwidth="2*"/>
  97. <colspec colnum="2" colname="col2" colwidth="1*"/>
  98. <colspec colnum="3" colname="col3" colwidth="3*"/>
  99. <thead>
  100. <row>
  101. <entry align="center">Dependency</entry>
  102. <entry align="center">Version</entry>
  103. <entry align="center">Description</entry>
  104. </row>
  105. </thead>
  106. <tbody>
  107. <row>
  108. <entry>spring-security-core</entry>
  109. <entry></entry>
  110. <entry></entry>
  111. </row>
  112. <row>
  113. <entry>spring-web</entry>
  114. <entry></entry>
  115. <entry><para>Required for clients which use HTTP remoting support.</para></entry>
  116. </row>
  117. </tbody>
  118. </tgroup>
  119. </table>
  120. </para>
  121. </section>
  122. <section>
  123. <title><literal>spring-security-web</literal></title>
  124. <para>This module is typically required in web applications which use the Servlet API.
  125. <table xml:id="deps-web">
  126. <title>Web Dependencies</title>
  127. <tgroup cols="3" align="left">
  128. <colspec colnum="1" colname="col1" colwidth="2*"/>
  129. <colspec colnum="2" colname="col2" colwidth="1*"/>
  130. <colspec colnum="3" colname="col3" colwidth="3*"/>
  131. <thead>
  132. <row>
  133. <entry align="center">Dependency</entry>
  134. <entry align="center">Version</entry>
  135. <entry align="center">Description</entry>
  136. </row>
  137. </thead>
  138. <tbody>
  139. <row>
  140. <entry>spring-security-core</entry>
  141. <entry></entry>
  142. <entry></entry>
  143. </row>
  144. <row>
  145. <entry>spring-web</entry>
  146. <entry></entry>
  147. <entry><para>Spring web support classes are used extensively.</para></entry>
  148. </row>
  149. <row>
  150. <entry>spring-jdbc</entry>
  151. <entry></entry>
  152. <entry><para>Required for JDBC-based persistent remember-me token repository (optional).</para></entry>
  153. </row>
  154. <row>
  155. <entry>spring-tx</entry>
  156. <entry></entry>
  157. <entry><para>Required by remember-me persistent token repository implementations (optional).</para></entry>
  158. </row>
  159. </tbody>
  160. </tgroup>
  161. </table>
  162. </para>
  163. </section>
  164. <section>
  165. <title><literal>spring-security-ldap</literal></title>
  166. <para>This module is only required if you are using LDAP authentication.
  167. <table xml:id="deps-ldap">
  168. <title>LDAP Dependencies</title>
  169. <tgroup cols="3" align="left">
  170. <colspec colnum="1" colname="col1" colwidth="2*"/>
  171. <colspec colnum="2" colname="col2" colwidth="1*"/>
  172. <colspec colnum="3" colname="col3" colwidth="3*"/>
  173. <thead>
  174. <row>
  175. <entry align="center">Dependency</entry>
  176. <entry align="center">Version</entry>
  177. <entry align="center">Description</entry>
  178. </row>
  179. </thead>
  180. <tbody>
  181. <row>
  182. <entry>spring-security-core</entry>
  183. <entry></entry>
  184. <entry></entry>
  185. </row>
  186. <row>
  187. <entry>spring-ldap-core</entry>
  188. <entry>1.3.0</entry>
  189. <entry><para>LDAP support is based on Spring LDAP.</para></entry>
  190. </row>
  191. <row>
  192. <entry>spring-tx</entry>
  193. <entry></entry>
  194. <entry><para>Data exception classes are required.</para></entry>
  195. </row>
  196. <row>
  197. <entry>apache-ds <footnote><para>The modules <literal>apacheds-core</literal>,
  198. <literal>apacheds-core-entry</literal>, <literal>apacheds-protocol-shared</literal>,
  199. <literal>apacheds-protocol-ldap</literal> and <literal>apacheds-server-jndi</literal> are required.
  200. </para></footnote></entry>
  201. <entry>1.5.5</entry>
  202. <entry><para>Required if you are using an embedded LDAP server (optional).</para></entry>
  203. </row>
  204. <row>
  205. <entry>shared-ldap</entry>
  206. <entry>0.9.15</entry>
  207. <entry><para>Required if you are using an embedded LDAP server (optional).</para></entry>
  208. </row>
  209. <row>
  210. <entry>ldapsdk</entry>
  211. <entry>4.1</entry>
  212. <entry>
  213. <para>Mozilla LdapSDK. Used for decoding LDAP password policy controls if you are
  214. using password-policy functionality with OpenLDAP, for example.
  215. </para>
  216. </entry>
  217. </row>
  218. </tbody>
  219. </tgroup>
  220. </table>
  221. </para>
  222. </section>
  223. <section>
  224. <title><literal>spring-security-config</literal></title>
  225. <para>This module is required if you are using Spring Security namespace configuration.
  226. <table xml:id="deps-config">
  227. <title>Config Dependencies</title>
  228. <tgroup cols="3" align="left">
  229. <colspec colnum="1" colname="col1" colwidth="2*"/>
  230. <colspec colnum="2" colname="col2" colwidth="1*"/>
  231. <colspec colnum="3" colname="col3" colwidth="3*"/>
  232. <thead>
  233. <row>
  234. <entry align="center">Dependency</entry>
  235. <entry align="center">Version</entry>
  236. <entry align="center">Description</entry>
  237. </row>
  238. </thead>
  239. <tbody>
  240. <row>
  241. <entry>spring-security-core</entry>
  242. <entry></entry>
  243. <entry></entry>
  244. </row>
  245. <row>
  246. <entry>spring-security-web</entry>
  247. <entry></entry>
  248. <entry>Required if you are using any web-related namespace configuration (optional).</entry>
  249. </row>
  250. <row>
  251. <entry>spring-security-ldap</entry>
  252. <entry></entry>
  253. <entry>Required if you are using the LDAP namespace options (optional).</entry>
  254. </row>
  255. <row>
  256. <entry>spring-security-openid</entry>
  257. <entry></entry>
  258. <entry>Required if you are using OpenID authentication (optional).</entry>
  259. </row>
  260. <row>
  261. <entry>aspectjweaver</entry>
  262. <entry>1.6.10</entry>
  263. <entry><para>Required if using the protect-pointcut namespace syntax (optional).</para></entry>
  264. </row>
  265. </tbody>
  266. </tgroup>
  267. </table>
  268. </para>
  269. </section>
  270. <section>
  271. <title><literal>spring-security-acl</literal></title>
  272. <para>The ACL module.
  273. <table xml:id="deps-acl">
  274. <title>ACL Dependencies</title>
  275. <tgroup cols="3" align="left">
  276. <colspec colnum="1" colname="col1" colwidth="2*"/>
  277. <colspec colnum="2" colname="col2" colwidth="1*"/>
  278. <colspec colnum="3" colname="col3" colwidth="3*"/>
  279. <thead>
  280. <row>
  281. <entry align="center">Dependency</entry>
  282. <entry align="center">Version</entry>
  283. <entry align="center">Description</entry>
  284. </row>
  285. </thead>
  286. <tbody>
  287. <row>
  288. <entry>spring-security-core</entry>
  289. <entry></entry>
  290. <entry></entry>
  291. </row>
  292. <row>
  293. <entry>ehcache</entry>
  294. <entry>1.6.2</entry>
  295. <entry><para>Required if the ehcache-based ACL cache implementation is used (optional if you are using your own implementation).</para></entry>
  296. </row>
  297. <row>
  298. <entry>spring-jdbc</entry>
  299. <entry></entry>
  300. <entry><para>Required if you are using the default JDBC-based AclService (optional if you implement your own).</para></entry>
  301. </row>
  302. <row>
  303. <entry>spring-tx</entry>
  304. <entry></entry>
  305. <entry><para>Required if you are using the default JDBC-based AclService (optional if you implement your own).</para></entry>
  306. </row>
  307. </tbody>
  308. </tgroup>
  309. </table>
  310. </para>
  311. </section>
  312. <section>
  313. <title><literal>spring-security-cas</literal></title>
  314. <para>The CAS module provides integration with JA-SIG CAS.
  315. <table xml:id="deps-cas">
  316. <title>CAS Dependencies</title>
  317. <tgroup cols="3" align="left">
  318. <colspec colnum="1" colname="col1" colwidth="2*"/>
  319. <colspec colnum="2" colname="col2" colwidth="1*"/>
  320. <colspec colnum="3" colname="col3" colwidth="3*"/>
  321. <thead>
  322. <row>
  323. <entry align="center">Dependency</entry>
  324. <entry align="center">Version</entry>
  325. <entry align="center">Description</entry>
  326. </row>
  327. </thead>
  328. <tbody>
  329. <row>
  330. <entry>spring-security-core</entry>
  331. <entry></entry>
  332. <entry></entry>
  333. </row>
  334. <row>
  335. <entry>spring-security-web</entry>
  336. <entry></entry>
  337. <entry></entry>
  338. </row>
  339. <row>
  340. <entry>cas-client-core</entry>
  341. <entry>3.1.12</entry>
  342. <entry>The JA-SIG CAS Client. This is the basis of the Spring Security integration.</entry>
  343. </row>
  344. <row>
  345. <entry>ehcache</entry>
  346. <entry>1.6.2</entry>
  347. <entry><para>Required if you are using the ehcache-based ticket cache (optional).</para></entry>
  348. </row>
  349. </tbody>
  350. </tgroup>
  351. </table>
  352. </para>
  353. </section>
  354. <section>
  355. <title><literal>spring-security-openid</literal></title>
  356. <para>The OpenID module.
  357. <table xml:id="deps-openid">
  358. <title>OpenID Dependencies</title>
  359. <tgroup cols="3" align="left">
  360. <colspec colnum="1" colname="col1" colwidth="2*"/>
  361. <colspec colnum="2" colname="col2" colwidth="1*"/>
  362. <colspec colnum="3" colname="col3" colwidth="3*"/>
  363. <thead>
  364. <row>
  365. <entry align="center">Dependency</entry>
  366. <entry align="center">Version</entry>
  367. <entry align="center">Description</entry>
  368. </row>
  369. </thead>
  370. <tbody>
  371. <row>
  372. <entry>spring-security-core</entry>
  373. <entry></entry>
  374. <entry></entry>
  375. </row>
  376. <row>
  377. <entry>spring-security-web</entry>
  378. <entry></entry>
  379. <entry></entry>
  380. </row>
  381. <row>
  382. <entry>openid4java-nodeps</entry>
  383. <entry>0.9.6</entry>
  384. <entry>Spring Security's OpenID integration uses OpenID4Java.</entry>
  385. </row>
  386. <row>
  387. <entry>httpclient</entry>
  388. <entry>4.1.1</entry>
  389. <entry>openid4java-nodeps depends on HttpClient 4.</entry>
  390. </row>
  391. <row>
  392. <entry>guice</entry>
  393. <entry>2.0</entry>
  394. <entry>openid4java-nodeps depends on Guice 2.</entry>
  395. </row>
  396. </tbody>
  397. </tgroup>
  398. </table>
  399. </para>
  400. </section>
  401. <section>
  402. <title><literal>spring-security-taglibs</literal></title>
  403. <para>Provides Spring Security's JSP tag implementations.
  404. <table xml:id="deps-taglibs">
  405. <title>Taglib Dependencies</title>
  406. <tgroup cols="3" align="left">
  407. <colspec colnum="1" colname="col1" colwidth="2*"/>
  408. <colspec colnum="2" colname="col2" colwidth="1*"/>
  409. <colspec colnum="3" colname="col3" colwidth="3*"/>
  410. <thead>
  411. <row>
  412. <entry align="center">Dependency</entry>
  413. <entry align="center">Version</entry>
  414. <entry align="center">Description</entry>
  415. </row>
  416. </thead>
  417. <tbody>
  418. <row>
  419. <entry>spring-security-core</entry>
  420. <entry></entry>
  421. <entry></entry>
  422. </row>
  423. <row>
  424. <entry>spring-security-web</entry>
  425. <entry></entry>
  426. <entry></entry>
  427. </row>
  428. <row>
  429. <entry>spring-security-acl</entry>
  430. <entry></entry>
  431. <entry>
  432. Required if you are using the <literal>accesscontrollist</literal> tag or
  433. <literal>hasPermission()</literal> expressions with ACLs (optional).
  434. </entry>
  435. </row>
  436. <row>
  437. <entry>spring-expression</entry>
  438. <entry></entry>
  439. <entry>Required if you are using SPEL expressions in your tag access constraints.</entry>
  440. </row>
  441. </tbody>
  442. </tgroup>
  443. </table>
  444. </para>
  445. </section>
  446. </appendix>