Version 3.1 by christoph_lechleitner@iteg_at on 2013-01-18 05.27:29

Show last authors
1 The jaas-login-service is provided as an OSGi bundle, which may be activated by
2
3 (% class="code" %)
4 (((
5 obr:addurl http:~/~/maven.clazzes.org/repository.xml
6 obr:deploy sql-login-service
7 )))
8
9 The maven artifact is:
10
11 (% class="code" %)
12 (((
13 <groupId>org.clazzes.login</groupId>
14 <artifactId>sql-login-service</artifactId>
15 )))
16
17 === {{id name="org.clazzes.login.sql-Functionality"/}}Functionality ===
18
19 The SQL login service authenticates against users in a SQL database, using configurable SQL queries.
20
21 There are no plans to support authentication domains, because typical standalone login systems do not care for domains.
22
23 === {{id name="org.clazzes.login.sql-Configuration"/}}Configuration ===
24
25 The SQL login service may be configured using the OSGi configuration PID {{code language="none"}}org.clazzes.login.sql{{/code}} using these configuration values:
26
27 (% class="wiki-content" %)
28 (((
29
30
31 |=(((
32 (% class="tablesorter-header-inner" %)
33 (((
34 Key
35 )))
36 )))|=(((
37 (% class="tablesorter-header-inner" %)
38 (((
39 Description
40 )))
41 )))
42 |(((
43 {{code language="none"}}
44 deactivateUserStatement
45 {{/code}}
46 )))|(((
47 Not implemented yet. Optional. Required for //deactivateUser// feature.
48
49 SQL template for a prepared statement to deactivate a user.
50
51 Example:
52 {{code language="none"}}UPDATE users SET encryptedPassword='{disabled}' WHERE userId=?{{/code}}
53 )))
54 |(((
55 {{code language="none"}}
56 defaultDomain
57 {{/code}}
58 )))|(((
59 Optional. Defaults to an empty string.
60
61 The login domain to use for principals when the request did not contain a domain.
62 )))
63 |(((
64 {{code language="none"}}
65 groupsByUserIdQuery
66 {{/code}}
67 )))|(((
68 Optional. Required for //getGroups// feature.
69
70 SQL template for a prepared statement to query the group IDs and group names of the groups of which the user specified by a userId is a member.
71
72 Example:
73 {{code language="none"}}SELECT g.groupId, g.groupName FROM groups AS g, users AS u, memberships AS mgroupName
74 WHERE u.userId=?
75 AND m.userId = u.id
76 AND g.id = m.groupId
77 ORDER BY g.groupId {{/code}}
78 )))
79 |(((
80 {{code language="none"}}
81 defaultPasswordAlgorithm
82 {{/code}}
83 )))|(((
84 Optional. Defaults to {{code language="none"}}crypt{{/code}}
85
86 Values supported so far: {{code language="none"}}crypt{{/code}}, {{code language="none"}}ssha1{{/code}}, {{code language="none"}}plain{{/code}}.
87
88 Password fields may contain:
89
90 * the password encrypted using the default password algorithm, or
91 * a LDAP style algorithm prefix and the password encrypted with the algorithm specified in the prefix. Example: {{code language="none"}}{PLAIN}badPassword{{/code}}
92 )))
93 |(((
94 {{code language="none"}}
95 setUserPasswordStatement
96 {{/code}}
97 )))|(((
98 Optional. Required for //changePassword// feature.
99
100 SQL template for a prepared statement to set a new password for the user.
101
102 Example:
103 {{code language="none"}}UPDATE users SET encryptedPassword=? WHERE userId=?{{/code}}
104 )))
105 |(((
106 {{code language="none"}}
107 userByUserIdQuery
108 {{/code}}
109 )))|(((
110 SQL template for a prepared statement to query userId, encrypted password, pretty name and e-mail address of a user specified by a userId.
111 If the pretty name is not part of the database, reuse the userId field.
112 If the e-mail address is not part of the database, use a constant like '' or null.
113
114 Example:
115 {{code language="none"}}SELECT userId, encryptedPassword, userName, mailAdr FROM users WHERE userId=?{{/code}}
116 )))
117 |(((
118 {{code language="none"}}
119 usersByGroupIdQuery
120 {{/code}}
121 )))|(((
122 Optional. Required for //getGroupMembers// feature.
123
124 SQL template for a prepared statement to query the user IDs, user names and e-mail-addresses of the members of the group specified by a groupId.
125
126 Example:
127 {{code language="none"}}SELECT u.userId, u.userName, u.mailAdr
128 FROM groups AS g, users AS u, memberships AS mgroupName
129 WHERE g.groupId=?
130 AND m.groupId = g.id
131 AND u.id = m.userId
132 ORDER BY g.userId {{/code}}
133 )))
134 )))