Some clients/customers would use web app for offline large scale purposes with user management system. In this regards, they provide a real pain deploying the app with HTTPS support. Let a lone the UN-trust warning by browsers for self signed certificates which makes customers complain.
- In this use case, for sake of argument. What are the options to use secure user authentication over HTTP ?
I've been trying to use Spring Security with Spring Boot to secure stateless APIs using Basic Authentication but I'd like to control the base64 header encryption/decryption avoiding sending the credentials in very easy to decrypt base64 string.
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf()
.disable()
.cors()
.and()
.authorizeRequests()
.antMatchers("/login")
.permitAll()
.and()
.httpBasic();
}
This method configuration extending WebSecurityConfigurerAdapter
. I've tried to take a look at the source code of BasicAuthenticationFilter
and found out it uses BasicAuthenticationConverter
creating new object so I can't provide custom converter as bean to control the base64 decryption with more strong alternative (or an extra one).
Also this breaks Basic Auth standard anyway. Digest Auth stores password as text and this is not an option for me .
So,
Is there anyway to use Basic Auth with HTTP controlling the base64 decryption trying to reach a bit to what HTTPS offers ?
Or using Digest Auth with encrypted stored passwords ?