• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# This is a sample properties file for the org.eclipse.jetty.security.JDBCLoginService
3# implemtation of the UserRealm interface.  This allows Jetty users authentication
4# to work from a database.
5#
6#   +-------+      +------------+      +-------+
7#   | users |      | user_roles |      | roles |
8#   +-------+      +------------+      +-------+
9#   | id    |     /| user_id    |\     | id    |
10#   | user  -------| role_id    |------- role  |
11#   | pwd   |     \|            |/     |       |
12#   +-------+      +------------+      +-------+
13#
14#
15# 'cachetime' is a time in seconds to cache positive database
16# lookups in internal hash table. Set to 0 to disable caching.
17#
18#
19# For MySQL:
20# create a MYSQL user called "jetty" with password "jetty"
21#
22# Create the tables:
23# create table users
24# (
25#     id integer primary key,
26#     username varchar(100) not null unique key,
27#     pwd varchar(20) not null
28# );
29#
30# create table roles
31# (
32#     id integer primary key,
33#     role varchar(100) not null unique key
34# );
35#
36# create table user_roles
37# (
38#     user_id integer not null,
39#     role_id integer not null,
40#     unique key (user_id, role_id),
41#     index(user_id)
42# );
43#
44# I'm not sure unique key with a first component of user_id will be
45# user by MySQL in query, so additional index wouldn't hurt.
46#
47# To test JDBC implementation:
48#
49# mysql> insert into users values (1, 'admin', 'password');
50# mysql> insert into roles values (1, 'server-administrator');
51# mysql> insert into roles values (2, 'content-administrator');
52# mysql> insert into user_roles values (1, 1);
53# mysql> insert into user_roles values (1, 2);
54#
55# Replace HashUserRealm in etc/admin.xml with JDBCUserRealm and
56# set path to properties file.
57#
58jdbcdriver = org.gjt.mm.mysql.Driver
59url = jdbc:mysql://localhost/jetty
60username = jetty
61password = jetty
62usertable = users
63usertablekey = id
64usertableuserfield = username
65usertablepasswordfield = pwd
66roletable = roles
67roletablekey = id
68roletablerolefield = role
69userroletable = user_roles
70userroletableuserkey = user_id
71userroletablerolekey = role_id
72cachetime = 300
73