how to get user entered password in spring security 3 - spring-security

I have implemented UserDetailsService and overriden loadUserByUsername(String username), here i need User entered password.
I want to authenticate against LdapTemplate authenticate(username,password).
I have searched a lot but dint get it.
Please help me.

Either use spring-security-ldap for LDAP based authentication or implement your own AuthenticationProvider instead of DaoAuthenticationProvider.
There are multiple authentication scenarios when using Spring Security LDAP:
either you can retrieve the user entry via connection authenticated by the provided credentials (probably scenario you are looking for)
or you can authenticate via technical account (usually you need to make LDAP search to get user's DN)
For more information check Spring Security LDAP documentation.

Related

Spring security google oauth UserDetailService - Rememberme

i implemented an spring boot app with oauth authentication agains google and a remember me policy based on cookie, but i´m getting a weird bevahior in the UserDetailsService that is needed for the remember me.
In the loadUserByUsername() im getting the entire object instead of just the username of the user.
This is my configuration
And the userDetailsService implementation that im using
Any idea on how to get the username/email only?
Getting the username or email of the user in the userDetailsServiceImplementation class

How can i authorized a user against SAML Assertion coming from Identity server(Wso2is 5.4.0)

i am using Spring SAML2.O and WSO2IS::
After successfully authentication in IDP its send a saml assertion(carry all the information of the User like username, roles and etc.) as part of response to service provider.
Here what i want is, i want to authorized the user on the basis of ROLES. SO how can i fetch the role of the user from saml assertion and authorized and give the access permission into my service provider.
here is my SAML Assertion:-
Your help is going to save me.
thanks in advance
If want to do authorization through WSO2IS, it's already baked in, though there are a couple ways to approach it depending on your needs. As a general answer, you probably want to review Post Authentication Handlers.
You don't necessarily need to write your own handler though. You mentioned wanting to read the role from a SAML assertion, but if you just want to do basic authorization by role, why not let WSO2 check it for you? You can apply an XACML policy by enabling authorization on the service provider under Local and Outbound Authentication in the IS.
If none of those options work for you, you can still manage authorization by using REST calls to the PDP.

Spring Boot + SpringSecurity + OAuth2 client - use custom UserDetailsService or AuthenticationProvider

I am creating website using Spring Boot, Spring MVC and spring-security-oauth2 and I am trying to authenticate my locally stored users against Google, Facebook, GitHub ... OAuth2 services. I also have standard username-password for them.
My idea is to store pair of [OAuth2_provider_type,OAuth2_subjectId] for each user to local database from the first success oauth login and then use this pair to find correct user when user authenticate himself by Google (or FB...) again. I have correctly authenticate with Google/Facebook but I don't know how to connect my local stored users to Spring OAuth2 Security and get them to SecurityContext.
Could somebody point me to some example or integration test where I can see something similar?
I am scanning spring-security-oauth2 sourcecode and I am confused little bit - do I need OAuth2 AuthorizationServer or ResourceServer for that?
Thanks for any help!

How to add more infomation for userDetails?

I am trying to integrate Spring security authentication in my application. The problem I am having right now is after success login, I would like to retrieve the current user which is store in spring security context, I got the UserDetails instead of my User.

Using Spring Security to Validate User Credentials

I have an application that uses Spring Security LDAP for User authentication.
What I'm trying to do is build a feature that requires the User to provide their password again for validation of credentials before performing an important process.
The user is already signed in, so I wouldn't want to kick the user out by killing their current session.
This sounds like it could be a tricky requirement to fill. I have one somewhat outside the box solution that could meet the requirement:
Create a sister Grails application that uses the same Grails/Spring Security/LDAP structure as your primary app.
Expose a /verifyLdapCredentials Service in the sister application to accept the user's LDAP credentials
Authenticate against LDAP
Sends a success/failure response back to the primary application
Unauthenticate from the sister application immediately to prepare for the next request
I ended up creating a separate service and controller to make a simple LDAP auth and lookup.
The service would login with the Spring config settings, then apply the username and supplied password and validate CN result.

Resources