Fix the OIDC account views, upgrades, and provider resolution raised by code review

The profile and admin user editors rendered the federated identity disabled, and disabled inputs are never submitted while both actions still validate and copy the posted value: under oidc no profile or user could ever be saved, and under db-oidc every save silently wiped the account's provider link. The profile shows the identity read-only (submitted), and the admin editor makes it editable, which is also the remediation the account_link_required error asks for. Profile.jsp also still requested the renamed noPasswordForOidc message key.

Upgrades from the OpenID era now boot: authentication.method values openid and db-openid map to their OIDC replacements with a warning instead of throwing on every request. Linking sees disabled and pending-activation accounts and refuses them cleanly, where before they fell through to provisioning and died on the username unique constraint.

Provider resolution no longer serializes logins on a dead identity provider: findByRegistrationId resolves only the requested provider, discovery runs under a ten second timeout, concurrent requests skip a provider that is already being resolved, and configured scopes are trimmed so "openid, profile, email" works. OIDC login honors Spring Security's saved request, so deep links survive the login roundtrip; the redirect-only success handler class, its test, and two orphaned handler beans are gone.
9 files changed
tree: bd95746eb487313753cce5b70ddc54dc1b26a030
  1. .github/
  2. app/
  3. assembly-release/
  4. binary-includes/
  5. db-utils/
  6. docker/
  7. docs/
  8. it-selenium/
  9. testing/
  10. .dockerignore
  11. .gitignore
  12. CONTRIBUTING.md
  13. doap_roller.rdf
  14. docker-compose.yml
  15. Dockerfile
  16. LICENSE.txt
  17. nbactions.xml
  18. NOTICE.txt
  19. pom.xml
  20. README.md
  21. version-rules.xml
README.md

Apache Roller

Apache Roller is a Java-based, full-featured, multi-user and group-blog server suitable for blog sites large and small. Roller is typically run with Apache Tomcat and MySQL. Roller is made up of the following Maven projects:

  • roller-project: Top level project
  • app: Roller Weblogger webapp, JSP pages, Velocity templates
  • assembly-release: Used to create official distributions of Roller
  • docs: Roller documentation in ASCII Doc format
  • it-selenium: Integrated browser tests for Roller using Selenium

Documentation

The Roller Install, User and Template Guides are available in ODT format (for OpenOffice or LibraOffice):

For more information

Hit the Roller Confluence wiki:

Installing Roller

If you want to run Roller in production, then you should down load the latest official release and install it by following the Installation Guide, which you can find at the documentation link: https://github.com/apache/roller/tree/master/docs.

Quick start: Running via Maven

You probably should not run Roller in production using this technique, but it‘s a relatively easy way to try Roller for yourself. Assuming you’ve got a UNIX shell, Java, Maven and Git:

Get the code:

$ git clone https://github.com/apache/roller.git

Compile and build Roller:

$ cd roller
$ mvn -DskipTests=true install

Run Roller in Jetty with an embedded Derby database (for testing only):

$ mvn jetty:run

Once Jetty is up and running browse to http://localhost:8080/roller to try to Roller.

Quick start: running via Docker

Another way to try Roller is to use Docker. This is actually easier than running via Maven because you do not need Maven or Java. If you‘ve got Docker, here’s how you can run Roller for demo purposes.

Get the code:

$ git clone https://github.com/apache/roller.git

Run Docker Compose to build and launch Roller along with a PostgreSQL database:

$ cd roller
$ docker-compose up

It will take a while to build and start the Docker image. Once it's done browse to http://localhost:8080/roller to try Roller.