Jetty 12.0.x SPNEGO: ಸೇವೆಯ ಹೆಸರನ್ನು ಸೆಟ್ ಮಾಡಿ, ಪೂರ್ಣ principal ಅಲ್ಲ
Jetty 12 ದೃಢೀಕರಣವನ್ನು ಸಂರಚಿಸುವಾಗ proxy URI, JAAS ಬಳಕೆದಾರ ಮತ್ತು GSS ಸೇವಾ ಘಟಕವನ್ನು ಪ್ರತ್ಯೇಕಿಸಿ.
Jetty SPNEGO ಸಂರಚನೆಯಲ್ಲಿ ಮೂರು ಹೆಸರುಗಳಿವೆ: ದೃಢೀಕರಣವನ್ನು ಹೊಂದಿಸಲು ಬಳಸುವ URI, JAAS ಮೂಲಕ ಲಾಗಿನ್ ಆಗುವ ಬಳಕೆದಾರ ಮತ್ತು ಟಿಕೆಟ್ ಕೋರಲಾದ ಸೇವೆ. ಅವುಗಳ ಉದ್ದೇಶ ಬೇರೆ ಬೇರೆ.
Jetty 12.0.x ಅನುಷ್ಠಾನಕ್ಕೆ, ದೃಢೀಕರಣ-ವಸ್ತುವಿನ ತುಣುಕು ಹೀಗಿದೆ:
var auth = new org.eclipse.jetty.client.SPNEGOAuthentication(
java.net.URI.create("http://proxy.example:8080"));
auth.setServiceName("HTTP");ಈ ತುಣುಕು ಸೇವಾ ಘಟಕವನ್ನು ತೋರಿಸುತ್ತದೆ, ಪೂರ್ಣ proxy ದೃಢೀಕರಣದ ಪಾಕವಿಧಾನವಲ್ಲ. JAAS ಲಾಗಿನ್, proxy ರೂಟಿಂಗ್ ಮತ್ತು ವಿನಂತಿಯ ದೃಢೀಕರಣ ವಿನಿಮಯ ಪ್ರತ್ಯೇಕವಾಗಿಯೇ ಉಳಿಯುತ್ತವೆ.
ಈ ಅನುಷ್ಠಾನದಲ್ಲಿ Jetty getServiceName(), @ ಅಕ್ಷರ ಮತ್ತು ದೃಢೀಕರಣ ವಿನಿಮಯದ ಹೋಸ್ಟ್ ಅನ್ನು ಸೇರಿಸಿ GSS ಹೋಸ್ಟ್-ಆಧಾರಿತ ಹೆಸರನ್ನು ನಿರ್ಮಿಸುತ್ತದೆ. [email protected] ಅನ್ನು ಸೇವಾ ಘಟಕವಾಗಿ ನೀಡಿದರೆ ಇನ್ನೊಂದು ಹೋಸ್ಟ್ ಸೇರಿಕೊಳ್ಳುತ್ತದೆ. ಈ ಸೆಟ್ಟರ್ ಪೂರ್ಣ Kerberos principal ಸ್ವೀಕರಿಸುತ್ತದೆ ಎಂದು ಊಹಿಸುವ ಬದಲು ಅದರ ಒಪ್ಪಂದವನ್ನು ಓದಿ.
ಫಲಿತ GSS ಹೆಸರಿನ ಪರಿಕಲ್ಪನಾ ರೂಪ HTTP@hostname. KDC ಯ ಸಂಬಂಧಿತ ಸೇವಾ principal ಸಾಮಾನ್ಯವಾಗಿ HTTP/hostname ಆಗಿ ನಿರೂಪಿಸಲ್ಪಡುತ್ತದೆ. ಆಯ್ಕೆ ಮಾಡಿದ proxy ಹೆಸರು ನಿಜವಾಗಿ ನೋಂದಾಯಿತ ಸೇವೆಗೆ ಹೊಂದಿಕೆಯಾಗಬೇಕು ಆ ಖಾತೆಗೆ; IP ವಿಳಾಸ ಅಥವಾ ಅಲಿಯಾಸ್ ಬೇರೆ ಟಿಕೆಟ್ ಗುರಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡಬಹುದು.
407 ಮಾರ್ಗವನ್ನೂ ಪರಿಶೀಲಿಸಿ
Jetty 12.0.x ನಲ್ಲಿ authenticate() GSS ಹೋಸ್ಟ್ಹೆಸರನ್ನು request.getHost() ನಿಂದ ಪಡೆದು ಡೀಫಾಲ್ಟ್ Authorization ಹೆಡರ್ನೊಂದಿಗೆ ಫಲಿತಾಂಶ ನಿರ್ಮಿಸುತ್ತದೆ. proxy URI ಮೂಲಕ ದೃಢೀಕರಣ ವಸ್ತುವನ್ನು ಹೊಂದಿಸುವುದು ಆ ಆಯ್ಕೆಗಳನ್ನು ತಾನಾಗಿಯೇ proxy ಹೋಸ್ಟ್ಹೆಸರು ಮತ್ತು Proxy-Authorization ಆಗಿ ಬದಲಿಸುವುದಿಲ್ಲ.
ಆದ್ದರಿಂದ proxy ಸಂಯೋಜನೆಗೆ ಆ ವಿನಿಮಯಕ್ಕೆ ಸರಿಯಾದ ವಿನಂತಿ ಹೋಸ್ಟ್ ಮತ್ತು proxy-ಸೀಮಿತ ಫಲಿತಾಂಶ ಬೇಕು. HTTPS CONNECT ವಿನಂತಿ ಮತ್ತು ಸಾಮಾನ್ಯ ಮೂಲ ವಿನಂತಿಯ ಹೋಸ್ಟ್ ಮೌಲ್ಯಗಳು ಬೇರೆಯಾಗಿರಬಹುದು. ಸೇವಾ-ಹೆಸರಿನ ಸೆಟ್ಟರ್ ಪೂರ್ಣ 407 ಹರಿವನ್ನು ಒದಗಿಸುತ್ತದೆ ಎಂದು ಊಹಿಸುವ ಬದಲು ಸ್ಥಾಪಿತ ಅನುಷ್ಠಾನದ ವರ್ತನೆಯನ್ನು ಖಚಿತಪಡಿಸಿ.
407 ಗಾಗಿ, ಆ ವಿನಂತಿ ಬಳಸಿದ proxy ದೃಢೀಕರಣ ವಿನಿಮಯ ಮತ್ತು ಹೋಸ್ಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ. 401 ಮೂಲ ದೃಢೀಕರಣಕ್ಕೆ ಸೇರಿದ್ದು. ಕೇವಲ ಮಾನ್ಯ ಬಳಕೆದಾರ ಟಿಕೆಟ್ Jetty ಸರಿಯಾದ ಸೇವಾ ಟಿಕೆಟ್ ಕೋರಿತು ಅಥವಾ ಮಧ್ಯವರ್ತಿ ಅದನ್ನು ಸ್ವೀಕರಿಸಿತು ಎಂದು ಸಾಬೀತುಪಡಿಸುವುದಿಲ್ಲ.