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

nablarch.common.web.token.HttpSessionTokenManager Maven / Gradle / Ivy

The newest version!
package nablarch.common.web.token;

import nablarch.common.web.WebConfig;
import nablarch.common.web.WebConfigFinder;
import nablarch.fw.web.servlet.NablarchHttpServletRequestWrapper;
import nablarch.fw.web.servlet.ServletExecutionContext;

import jakarta.servlet.http.HttpSession;

/**
 * HttpSessionを使った{@link TokenManager}実装クラス。
 *
 * @author Tsuyoshi Kawasaki
 */
public class HttpSessionTokenManager implements TokenManager {

    @Override
    public void saveToken(String serverToken, NablarchHttpServletRequestWrapper request) {
        HttpSession session = request.getSession(true).getDelegate();
        WebConfig webConfig = WebConfigFinder.getWebConfig();
        synchronized (session) {
            session.setAttribute(webConfig.getDoubleSubmissionTokenSessionAttributeName(),
                    serverToken);
        }
    }

    @Override
    public boolean isValidToken(String clientToken, ServletExecutionContext context) {
        HttpSession session = context.getNativeHttpSession(false);
        if (session == null) {
            return false;
        }
        String name = WebConfigFinder.getWebConfig().getDoubleSubmissionTokenSessionAttributeName();
        String serverToken = (String) session.getAttribute(name);
        session.removeAttribute(name);
        return clientToken.equals(serverToken);

    }

    @Override
    public void initialize() {
        //何もしない
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy