All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fr.zebasto.spring.identity.rest.security.RestAuthenticationSuccessHandler Maven / Gradle / Ivy

There is a newer version: 1.0.0-BETA2
Show newest version
package fr.zebasto.spring.identity.rest.security;

import com.fasterxml.jackson.databind.ObjectMapper;
import fr.zebasto.spring.identity.contract.service.UserService;
import fr.zebasto.spring.identity.defaults.model.DefaultUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.security.core.Authentication;
import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler;
import org.springframework.util.Assert;

import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.UUID;

/**
 * Manage post successful authentication actions.
 * Returns connected user's information
 *
 * @author Houssem BELHADJ AHMED
 * @since 1.0.0
 */
@Named("restAuthenticationSuccessHandler")
public class RestAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler {
    private ObjectMapper objectMapper;

    @Autowired
    private MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter;

    @Inject
    @Named("userService")
    private UserService service;

    @Override
    public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
        DefaultUser connectedUser = this.service.findByLogin(authentication.getName());
        objectMapper.writeValue(response.getWriter(), connectedUser);
        response.setStatus(HttpServletResponse.SC_OK);
    }

    @PostConstruct
    public void postConstruct() {
        Assert.notNull(this.mappingJackson2HttpMessageConverter);
        this.objectMapper = this.mappingJackson2HttpMessageConverter.getObjectMapper();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy