मैं स्प्रिंग प्रोजेक्ट पर काम कर रहा हूं और क्या मैं प्रोग्रामेटिक रूप से सत्र ट्रैकिंग के लिए यूआरएल पैरामीटर्स को रोकने की कोशिश कर रहा हूं। यह मेरा कोड है

import org.auctions.Config.MvcConfig;
import org.springframework.boot.web.servlet.ServletContextInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
import web.SessionListenerWithMetrics;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import javax.servlet.SessionTrackingMode;
import java.util.EnumSet;

public class SecurityWebApplicationInitializer implements ServletContextInitializer {


    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
        rootContext.register(MvcConfig.class);
        servletContext.setSessionTrackingModes(EnumSet.of(SessionTrackingMode.COOKIE));
        servletContext.addListener(SessionListenerWithMetrics.class);
        rootContext.setServletContext(servletContext);
        ServletRegistration.Dynamic dispatcher =
                servletContext.addServlet("dispatcher", new DispatcherServlet(rootContext));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");
    }
}

**मेरा प्रश्न** है, क्या इसे प्रोग्रामेटिक रूप से करने के लिए कोई अन्य दृष्टिकोण हैं। मुझे यकीन नहीं है कि यह एक उचित तरीका है,

क्या कोई इस कोड की लाइन को सही जगह पर रखने में मेरी मदद कर सकता है

servletContext.setSessionTrackingModes(EnumSet.of(SessionTrackingMode.COOKIE));
3
Panagiotis Drakatos 21 अगस्त 2017, 22:50

2 जवाब

आप web.xml में सत्र ट्रैकिंग मोड निर्दिष्ट कर सकते हैं

<web-app>
....other stuff
        <session-config>
             <tracking-mode>COOKIE</tracking-mode>
             <session-timeout>20</session-timeout>
        </session-config>
</web-app>

यह सर्वर द्वारा url पुनर्लेखन को अक्षम कर देगा

0
ramp 23 अगस्त 2017, 15:24
जैसा कि शीर्षक ने कहा है कि मैं इसे प्रोग्रामेटिक रूप से करना दिलचस्प हूं।
 – 
Panagiotis Drakatos
26 अगस्त 2017, 16:50

यदि आप application.properties में प्रोग्रामेटिक रूप से होने के बारे में अपना विचार बदलते हैं:

server.servlet.session.tracking-modes=cookie

किया हुआ।

0
Eliaquim Tchitalacumbi 5 मार्च 2020, 21:20