Product SiteDocumentation Site

12.2.3. Path Rewriting

PicketLink allows you to rewrite paths based on the information from the authenticated user. This is very useful if you want to use dynamic paths based on user information.
Let's suppose you want to request a path that changes based on the user identifier.
httpBuilder
    .forPath("/user/profile/{identity.account.id}")
Here, if the authenticated user has an identifier with value 1, PicketLink is going to translate the real path as follows:
/user/profile/1
You can do the same thing regarding the partition an user belongs to. Let's suppose your paths are defined based on the partition the user belongs to.
httpBuilder
    .forPath("/company/{identity.account.patition.name}/home.jsf")
In thise case, considering that the authenticated user belongs to a partition with name acme, PicketLink is going to translate the real path to:
/company/acme/home.jsf
This can be very useful for multi-tenancy applications.
You can use whatever function or object supported by PicketLink EL. Take a look at Section 11.9, “Using EL-Based Expresions” for more details.