README.txt
1 OpenSolaris Authentication and Authorisation System
2 ###################################################
3
4 Overview
5 ========
6
7 This repository contains the system used to manage opensolaris.org
8 authentication and authorisation, for both users and applications.
9
10 See http://auth.opensolaris.org
11
12 Getting started
13 ===============
14
15 Auth webapp
16 -----------
17
18 Prerequisites
19 .............
20
21 1. A version of the Java 6 JDK (should be included with any recent ON build).
22
23 2. The unlimited strength JCE policy files - these give access to strong crypto
24 ciphers, rather than the limited-strength defaults shipped with the JDK.
25 These can be obtained from the 'Other Downloads' section of
26 http://java.sun.com/javase/downloads/index.jsp
27
28 3. An installed copy of NetBeans 6.5, including the Tomcat server. The version
29 of NetBeans that ships with OpenSolaris does not include the bundled Tomcat
30 server, and whilst it should be ossible to configure NetBeans to use the
31 Tomcat bundled with Solaris, the Solaris version is an older version than
32 the one that ships with NetBeans, The recommendation is therefore to
33 install NetBeans from http://www.netbeans.org/downloads/index.html, the
34 'Java' bundle.
35
36 Running
37 .......
38
39 1. Open the AuthWebapp project in NetBeans (File->Open Project). Make sure the
40 'Open as Main Project' and 'Open Required Projects' checkboxes are selected.
41
42 2. Press F6. NetBeans will build the project and its dependencies, start
43 Tomcat and deploy the app. The app will then start up an embedded database
44 server and create a new database under /tmp/auth. The database will be
45 populated with some test data. When that is complete NetBeans will then open
46 browser window containing the front page of the application.
47
48 3. There is also a test XMLRPC client in the AuthClientTest project. To run it,
49 right-click on the project in the Projects window and select 'Run Project'.
50
51 Cleanup
52 .......
53
54 You can safely delete everything under /tmp/auth when you are done, it will be
55 recreated the next time you run the application.
56
57 CA application
58 --------------
59
60 To build the application, run the Makefile in the CA directory, then run
61 CA/bin/ca to start the application. This is a text menu application that can
62 be used to manage certificates. See the application help menus help for more
63 details.
64
65 Other tips
66 ==========
67
68 Auth database
69 -------------
70
71 If you want to poke around in the database, I can strongly recommend the
72 SQuirreL SQL client - http://www.squirrelsql.org/. This is a Java-based GUI
73 application that lets you browse databases - anything you can get a JDBC driver
74 for. To configure it:
75
76 1. Get the appropriate JDBC driver. You can find a copy of the Derby one in
77 the SVN repo at new_site/AuthDB/lib/derbyclient.jar. I generally create a
78 drivers subdirectory in my SQuirreL install directory and put a copy in
79 there.
80
81 2. Make sure the webapp is running, the database is embedded in the webapp, so
82 the webapp needs to be active. (F6 in NetBeans)
83
84 3. Open the Drivers window (Windows->View Drivers) and click on the 'Apache
85 Derby Client' entry. Click on the 'Extra Class Path' tab, then 'Add' and
86 browse to the derbyclient.jar file.
87
88 4. Open the Aliases window (Windows->View Aliases) and click on the '+' (Create
89 new Alias). Fill in the form as follows:
90
91 Name: opensolaris
92 Driver: Apache Derby Client
93 URL: jdbc:derby://localhost/opensolaris;securityMechanism=8
94 User Name: auth
95 Password: auth
96 Auto Logon: selected
97
98 5. Click on the 'Test' button to check the connection works, then on 'OK'.
99
100 6. In the Aliases window, double click on the 'opensolaris' alias to open the
101 database. The database tables are in the 'AUTH' schema.
102
103 Directory contents
104 ==================
105
106 File LICENSES.txt
107 -----------------
108
109 Information on the licenses used by various components of the Auth application.
110
111 Subdirectory AuthClient
112 -----------------------
113
114 This NetBeans project provides a client library for applications that want to
115 make XMLRPC requests to the Auth service.
116
117 Subdirectory AuthClientTest
118 ---------------------------
119
120 This NetBeans project provides a simple command-line client to test the basic
121 client functionality.
122
123 Subdirectory AuthCommon
124 -------------------------
125
126 This NetBeans project holds the Apache XMLRPC libraries, as well as common code
127 that is used by both the XMLRPC server and clients. This code includes al the
128 POJO classes used to store data, classes for managing data pagination and the
129 xlasses used to provide the XMLRPC interface.
130
131 Subdirectory AuthDB
132 -----------------------
133
134 This NetBeans project contains the code used to create and manage the
135 opensolaris user database. It uses the Derby database package, and runs
136 embedded within the Auth webapp.
137
138 Subdirectory AuthSSL
139 -----------------------
140
141 This NetBeans project provides a library that manages the creation of SSL
142 connections for either client or server use. Rather than using the global JVM
143 keystore, this library allows a specific keystore to be used for the conections
144 it creates. This project also contains the classses needed to manage the
145 keystores used by SSL connections, and the source of the keystore command-line
146 utility.
147
148 Subdirectory AuthWebapp
149 -----------------------
150
151 This NetBeans project contains the Auth service. This consists of a web
152 application that manages users and services, using an embedded Derby database.
153 It also provides a XMLRPC server that provides authentication and authorisation
154 services to other applications.
155
156 Subdirectory AuthWebClientTest
157 ------------------------------
158
159 Simple web application that acts as a test Auth client.
160
161 Subdirectory AuthXWiki
162 ----------------------
163
164 Code for integrating Auth support into XWiki.
165
166 Subdirectory CA
167 ---------------
168
169 This is a Certificate Authority, used to issue X509 certificates. These
170 certificates are in turn used to secure and control the communications between
171 the Auth system and client applications.
172
173 Subdirectory DataMigration
174 --------------------------
175
176 This NetBeans project contains a utility to migrate data from the existing Tonic
177 database into the Auth database. It is run from the command-line.
178
179 Subdirectory DevelCerts
180 -----------------------
181
182 Certificates for development and test purposes.
183
184 Subdirectory Documents
185 ----------------------
186
187 Contains design documents for the Auth application.
188
189 Subdirectory Libraries
190 ----------------------
191
192 Shared libraries used by the NetBeans projects.
193
194 Subdirectory Licenses
195 ---------------------
196
197 Licenses used by various components of the Auth application.
198
199 Subdirectory XMLRPCTests
200 ------------------------
201
202 This NetBeans project holds simple stand-alone test classes that can be used to
203 check the end-to-end SSL and XMLRPC functionality is working.
204