pwm
PWM is an open source password self-service application for LDAP directories.
Official project page is at https://github.com/pwm-project/pwm/.
Minimum requirements for PWM application.
PWM Version | Java [^1] | Servlet | Tomcat [^2] |
---|---|---|---|
v2.1 | 17 | 3.0 | 9 |
v2.0 | 11-17 | 3.0 | 8-9 |
v1.9 | 8-11 | 3.0 | 7-9 |
[^1] There is no requirement for a specific Java implementation, PWM builds use Adoptium.
[^2] Tomcat isn’t an explicit requirement, but it is the most common container used with PWM, and
the one that is used for the docker and onejar builds.
PWM is distributed in the following artifacts, you can use whichever one is most convenient.
Artifact | Description |
---|---|
WAR | Standard Java WAR (Web Archive) application deployment model, you need to have a working java & tomcat configuration on your server. |
Executable | Command line executable Java JAR application, includes tomcat. |
Docker | Docker image includes Java and Tomcat. |
For all deployment types, each PWM instance will need an applicationPath directory defined on your local server for PWM’s configuration,
log, and runtime files. Once PWM is configured, the initial web UI will prompt the administrator for LDAP and other configuration settings.
Steps:
1) Get Apache tomcat working to the point you can access the tomcat landing page with your browser. See tomcat documentation/help sites for
assistance with installing and configuring tomcat.
2) Set the PWM_APPLICATIONPATH environment variable in your tomcat instance to a local location of your applicationPath directory. See tomcat and/or your
operating system documentation/help sites for assistance with configuring environment variables as the method for doing this depends on OS and deployment type.
2) Place the pwm.war file in tomcat ‘webapps’ directory (rename from pwm-x.x.x.war with version naming)
3) Access with /pwm url and configure
The ‘onejar’ artifact released with PWM has an embedded tomcat instance, so you don’t need to install tomcat to use this
version. You will be responsible for getting it to run as a service, and you won’t be able to do any advanced tomcat
configuration.
Requirements:
Help:
java -version
to ensure you have java 11 or better availablejava -jar pwm-onejar-2.0.0.jar
for command line helpExample for running onejar executable (with /pwm-applicationPath being the location to your applicationPath directory):
java -jar pwm-onejar-2.0.0.jar -applicationPath /pwm-applicationPath
By default the executable will remain attached to the console and listen for HTTPS connections on port 8443.
The PWM docker image includes Java and Tomcat. It listens using https on port 8443, and has a volume exposed
as /config
. You will need to map the /config
volume to some type of persistent docker
volume for PWM to retain configuration.
Requirements:
Steps:
Load your docker image with image nae of default pwm/pwm-webapp:
docker load --input=pwm-docker-image-v2.0.0.tar
Create docker image named mypwm, map to the server’s 8443 port, and set the config volume to use the server’s
local file system /home/user/pwm-config folder:
docker create --name mypwm -p '8443:8443' --mount 'type=bind,source=/home/user/pwm-config,destination=/config' pwm/pwm-webapp
Start the mypwm container:
docker start mypwm
Build pre-requisites:
Build steps:
Linux example:
export JAVA_HOME="/home/vm/JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
./mvnw clean verify
Windows example:
set JAVA_HOME="c:\JavaJDKDirectory"
git clone https://github.com/pwm-project/pwm
cd pwm
mvnw.cmd clean verify
On Windows we recommend using paths without spaces (including for the JDK directory).
Artifacts created:
Format | Directory |
---|---|
WAR | webapp/target |
Executable | onejar/target |
Docker | docker/target |