ServletAuthenticationDetails.java

package org.flasby.security.servlet;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import lombok.Getter;

@Getter
public class ServletAuthenticationDetails {
    private final String remoteAddress;
    private final String sessionId;

    public ServletAuthenticationDetails(HttpServletRequest request) {
        //get remoteAddress if set in the header. otherwise, get it from the request
        this.remoteAddress = null != request.getHeader("X-FORWARDED-FOR") ? request.getHeader("X-FORWARDED-FOR") : request.getRemoteAddr();

        HttpSession session = request.getSession(false);
        this.sessionId = null != session ? session.getId() : null;
    }

    @Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append(super.toString()).append(": ");
		sb.append("RemoteIpAddress: ").append(this.getRemoteAddress()).append("; ");
		sb.append("SessionId: ").append(this.getSessionId());
		return sb.toString();
	}

}