what is recommended way to create custom pages OAuth Approval page:
I have to completely override the stuff on the page, need to add styles, branding etc. What is the right way to achieve that? Where could I see the source of the default page to use it as a starting point?
I also need to override the /login page but I think the approach of overriding it is going to be pretty much the same.
The recommended way is to provide a normal Spring MVC @RequestMapping
for the "/oauth/confirm_access". You can look at WhitelabelApprovalEndpoint
for the default implementation. Don't forget to use @SessionAttributes("authorizationRequest")
in your controller.
In addition to @DaveSyer's answer, which should work for the most of the cases. Sometimes based on configuration and customization the aforementioned method may not work, if FrameworkEndpointHandlerMapping
from Spring Security OAuth package has higher order than RequestMappingHandlerMapping
of your application. If this is the case, then servlet dispatcher will never reach you mapping and will always show the default page.
One way to fix it is to change the order of mappers, given that FrameworkEndpointHandlerMapping
's order is Order.LOWEST_PRECEDENCE - 2
.
Another way is to set the approval page to a custom URL, not mapped by FrameworkEndpointHandlerMapping
, thus servlet dispatcher will reaches you application's mapping
@Configuration
@EnableAuthorizationServer
protected static class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {
@Autowired
private AuthorizationEndpoint authorizationEndpoint;
@PostConstruct
public void init() {
authorizationEndpoint.setUserApprovalPage("forward:/oauth/custom_confirm_access");
authorizationEndpoint.setErrorPage("forward:/oauth/custom_error");
}
}
With such a configuration mappings of /oauth/custom_confirm_access
and /oauth/custom_error
will be used as a confirmation page and an error page respectively.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With