0N/A# OpenAM
1879N/A
0N/AOpenAM is an "all-in-one" access management solution that provides the following features in a single unified project:
0N/A
0N/A+ Authentication
0N/A - Adaptive
0N/A - Strong
0N/A+ Single sign-on (SSO)
0N/A+ Authorization
0N/A+ Entitlements
0N/A+ Federation
0N/A+ Web Services Security
0N/A
0N/AOpenAM provides mobile support out of the box, with full OAuth 2.0 and OpenID Connect support - modern protocols that
0N/Aprovide the most efficient method for developing secure native or HTML5 mobile applications optimized for bandwidth and
0N/ACPU.
0N/A
0N/AThe project is led by ForgeRock who integrate the OpenAM, OpenIDM, OpenDJ, OpenICF, and OpenIG open source projects to
1472N/Aprovide a quality-assured Identity Platform. Support, professional services, and training are available for the Identity
1472N/A Platform, providing stability and safety for the management of your digital identities.
1472N/A
0N/ATo find out more about the services ForgeRock provides, visit [www.forgerock.com][commercial_site].
0N/A
0N/ATo view the OpenAM project page, which also contains all of the documentation, visit
1879N/A [https://forgerock.org/openam/][project_page].
1879N/A
1879N/AFor a great place to start, take a look at [Getting Started With OpenAM]
1879N/A(https://forgerock.org/openam/doc/bootstrap/getting-started/index.html "Getting Started With OpenAM").
1879N/A
1879N/AFor further help and discussion, visit the [community forums][community_forum].
1879N/A
1879N/A# Getting the OpenAM Application
1879N/A
1879N/AYou can obtain the OpenAM Web Application Archive (WAR) file in the following ways:
1879N/A
1879N/A## Download It
0N/A
0N/AThe easiest way to try OpenAM is to download the WAR file and follow the [Getting Started With OpenAM](https://forgerock.org/openam/doc/bootstrap/getting-started/index.html "Getting Started With OpenAM") guide.
0N/A
0N/AYou can download either:
0N/A
0N/A1. An [enterprise release build][enterprise_builds].
0N/A2. The [nightly build][nightly_builds] which contains the latest features and bug fixes, but may also contain
0N/A_in progress_ unstable features.
0N/A
0N/A## Build The Source Code
0N/A
0N/AIn order to build the project from the command line follow these steps:
0N/A
0N/A### Prepare your Environment
0N/A
0N/AYou will need the following software to build your code.
0N/A
0N/ASoftware | Required Version
0N/A---------------------- | ----------------
0N/AJava Development Kit | 1.7 and above
0N/AMaven | 3.1.0 and above
0N/AGit | 1.7.6 and above
0N/A
0N/AThe following environment variables should be set:
0N/A
0N/A- `JAVA_HOME` - points to the location of the version of Java that Maven will use.
0N/A- `MAVEN_OPTS` - sets some options for the jvm when running Maven.
851N/A
0N/AFor example your environment variables might look something like this:
0N/A
0N/A```
0N/AJAVA_HOME=/usr/jdk/jdk1.7.0_79.jdk
0N/AMAVEN_OPTS='-Xmx2g -Xms2g -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=512m'
0N/A```
0N/A
0N/A### Getting the Code
0N/A
0N/AThe central project repository lives on the ForgeRock Bitbucket Server at
0N/A[https://stash.forgerock.org/projects/OPENAM][central_repo].
0N/A
0N/AMirrors exist elsewhere (for example GitHub) but all contributions to the project are managed by using pull requests
0N/Ato the central repository.
0N/A
0N/AThere are two ways to get the code - if you want to run the code unmodified you can simply clone the central repo (or a
0N/Areputable mirror):
0N/A
0N/A```
0N/Agit clone https://stash.forgerock.org/scm/openam/openam.git
0N/A```
0N/A
0N/AIf, however, you are considering contributing bug fixes, enhancements, or modifying the code you should fork the project
0N/A and then clone your private fork, as described below:
0N/A
0N/A1. Create an account on [BackStage][backstage] - You can use these credentials to create pull requests, report bugs, and
0N/A download the enterprise release builds.
0N/A2. Log in to the Bitbucket Server using your BackStage account credentials.
0N/A3. Fork the `openam` project. This will create a fork for you in your own area of Bitbucket Server. Click on your
0N/Aprofile icon then select 'view profile' to see all your forks.
0N/A4. Clone your fork to your machine.
0N/A
0N/AObtaining the code this way will allow you to create pull requests later.
0N/A
0N/A### Building the Code
0N/A
0N/AThe OpenAM build process and dependencies are managed by Maven. The first time you build the project, Maven will pull
0N/Adown all the dependencies and Maven plugins required by the build, which can take a significant amount of time.
0N/ASubsequent builds will be much faster!
0N/A
0N/A```
0N/Acd openam
0N/Amvn clean install
0N/A```
0N/A
0N/AMaven builds the binary in `openam/openam-server/target`. The file name format is `OpenAM-<nextversion>-SNAPSHOT.war`,
0N/Afor example "OpenAM-14.0.0-SNAPSHOT.war".
0N/A
0N/A## Tests
0N/A
0N/AForgeRock undertake functional, performance, and security testing on the Identity Platform, including OpenAM. To license
0N/A a fully tested build of the Identity Platform check out
0N/A[how to buy][how_to_buy].
0N/A
0N/A### Checkstyle Tests
0N/A
0N/AForgeRock adhere to a set of [coding standards][coding_standards]. A set of checkstyle rules enforce these standards,
0N/Aand may be run by building using the `precommit` Maven profile:
0N/A
0N/A```
0N/Amvn clean install -P precommit
0N/A```
0N/A
0N/ASome legacy code will fail, so if you are modifying an existing module you should run this profile before modifying the
0N/Acode, and then run the profile again after modifications to ensure the number of reported issues has not increased.
0N/A
0N/A### Unit Tests
0N/A
0N/AUnit tests are provided with the project and are run by Maven as part of the build. OpenAM uses the "_TestNG_"
0N/Aframework. Unit tests should be written for all new code.
0N/A
0N/AYou can run just the tests:
0N/A
0N/A`mvn test`
0N/A
0N/AOr build without running tests:
0N/A
0N/A`mvn clean install -DskipTests`
0N/A
851N/AAll new code and modifications should be covered by unit tests.
0N/A
0N/A## Getting Started With OpenAM
0N/A
0N/AForgeRock provide a comprehensive set of documents for OpenAM, including getting started and installation guides:
0N/A
0N/A- [Documentation for enterprise builds][enterprise_docs].
851N/A- [Draft docs for nightly builds and self built code][nightly_docs]
0N/A
0N/A## Contributing
851N/A
0N/AThere are many ways to contribute to the OpenAM project. You can contribute to the [OpenAM Docs Project][docs_project],
0N/Areport or [submit bug fixes][issue_tracking], or [contribute extensions][contribute] such as custom authentication
0N/Amodules, authentication scripts, policy scripts, dev ops scripts, and more.
0N/A
0N/A## Versioning
0N/A
0N/AForgeRock produce an enterprise point release build. These builds use the versioning format X.0.0 (for example 12.0.0,
0N/A13.0.0) and are produced yearly. These builds are free to use for trials, proof of concept projects and so on. A license
0N/A is required to use these builds in production.
0N/A
0N/AThose with support contracts have access to sustaining releases that contain bug and security fixes. These builds use
0N/Athe versioning format 13.0.X (for example 13.0.1, 13.0.2). Those with support contracts also get access to
0N/Aquality-assured interim releases, such as OpenAM 13.5.0.
0N/A
851N/A## Authors
0N/A
0N/ASee the list of [contributors][contributors] who participated in this project.
0N/A
0N/A## License
0N/A
0N/AThis project is licensed under the Common Development and Distribution License (CDDL). The following text applies to
0N/Aboth this file, and should also be included in all files in the project:
0N/A
0N/A> The contents of this file are subject to the terms of the Common Development and Distribution License (the License).
0N/A> You may not use this file except in compliance with the License.
0N/A>
0N/A> You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the specific language governing
0N/A> permission and limitations under the License.
0N/A>
0N/A> When distributing Covered Software, include this CDDL Header Notice in each file and include the License file at
0N/A> legal/CDDLv1.0.txt. If applicable, add the following below the CDDL Header, with the fields enclosed by brackets []
0N/A> replaced by your own identifying information: "Portions copyright [year] [name of copyright owner]".
0N/A>
0N/A> Copyright 2016 ForgeRock AS.
0N/A
0N/A## All the Links!
0N/ATo save you sifting through the readme looking for 'that link'...
0N/A
0N/A- [ForgeRock's commercial website][commercial_site]
0N/A- [ForgeRock's community website][community_site]
0N/A- [ForgeRock's BackStage server][backstage]
0N/A- [OpenAM Project Page][project_page]
0N/A- [Community Forums][community_forum]
0N/A- [Enterprise Build Downloads][enterprise_builds]
0N/A- [Enterprise Documentation][enterprise_docs]
0N/A- [Nightly Build Downloads][nightly_builds]
0N/A- [Nightly Documentation][nightly_docs]
0N/A- [Central Project Repository][central_repo]
0N/A- [Issue Tracking][issue_tracking]
0N/A- [Contributors][contributors]
0N/A- [Coding Standards][coding_standards]
0N/A- [Contributions][contribute]
0N/A- [How to Buy][how_to_buy]
0N/A
0N/A[commercial_site]: https://www.forgerock.com
0N/A[community_site]: https://www.forgerock.org
0N/A[backstage]: https://backstage.forgerock.com
0N/A[project_page]: https://forgerock.org/openam/
0N/A[community_forum]: https://forgerock.org/forum/fr-projects/openam/
0N/A[enterprise_builds]: https://backstage.forgerock.com/#!/downloads/OpenAM/OpenAM%20Enterprise#browse
0N/A[enterprise_docs]: https://backstage.forgerock.com/#!/docs/openam
0N/A[nightly_builds]: https://forgerock.org/downloads/openam-builds/
0N/A[nightly_docs]: https://forgerock.org/documentation/openam/
0N/A[central_repo]: https://stash.forgerock.org/projects/OPENAM
0N/A[issue_tracking]: http://bugster.forgerock.org/
0N/A[docs_project]: https://stash.forgerock.org/projects/OPENAM/repos/openam-docs/browse
0N/A[contributors]: https://stash.forgerock.org/plugins/servlet/graphs?graph=contributors&projectKey=OPENAM&repoSlug=openam&refId=all-branches&type=c&group=weeks
0N/A[coding_standards]: https://wikis.forgerock.org/confluence/display/devcom/Coding+Style+and+Guidelines
0N/A[how_to_buy]: https://www.forgerock.com/platform/how-buy/
0N/A[contribute]: https://forgerock.org/projects/contribute/
0N/A
0N/A## Acknowledgments
0N/A
0N/A* Sun Microsystems.
0N/A* The founders of ForgeRock.
0N/A* The good things in life.