1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package waffle.spring;
25
26 import java.io.IOException;
27
28 import javax.servlet.ServletException;
29 import javax.servlet.http.HttpServletRequest;
30 import javax.servlet.http.HttpServletResponse;
31
32 import org.slf4j.Logger;
33 import org.slf4j.LoggerFactory;
34 import org.springframework.security.core.AuthenticationException;
35 import org.springframework.security.web.AuthenticationEntryPoint;
36
37 import waffle.servlet.spi.SecurityFilterProviderCollection;
38
39
40
41
42 public class NegotiateSecurityFilterEntryPoint implements AuthenticationEntryPoint {
43
44
45 private static final Logger LOGGER = LoggerFactory.getLogger(NegotiateSecurityFilterEntryPoint.class);
46
47
48 private SecurityFilterProviderCollection provider;
49
50
51
52
53 public NegotiateSecurityFilterEntryPoint() {
54 NegotiateSecurityFilterEntryPoint.LOGGER.debug("[waffle.spring.NegotiateEntryPoint] loaded");
55 }
56
57 @Override
58 public void commence(final HttpServletRequest request, final HttpServletResponse response,
59 final AuthenticationException ex) throws IOException, ServletException {
60
61 NegotiateSecurityFilterEntryPoint.LOGGER.debug("[waffle.spring.NegotiateEntryPoint] commence");
62
63 if (this.provider == null) {
64 throw new ServletException("Missing NegotiateEntryPoint.Provider");
65 }
66
67 response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
68 response.setHeader("Connection", "keep-alive");
69 this.provider.sendUnauthorized(response);
70 response.flushBuffer();
71 }
72
73
74
75
76
77
78 public SecurityFilterProviderCollection getProvider() {
79 return this.provider;
80 }
81
82
83
84
85
86
87
88 public void setProvider(final SecurityFilterProviderCollection value) {
89 this.provider = value;
90 }
91 }