3232import org .springframework .security .core .userdetails .User ;
3333import org .springframework .security .core .userdetails .UserDetails ;
3434import org .springframework .security .web .authentication .WebAuthenticationDetails ;
35- import org .springframework .web .filter .GenericFilterBean ;
3635
37- import javax .annotation . PostConstruct ;
36+ import javax .servlet . Filter ;
3837import javax .servlet .FilterChain ;
3938import javax .servlet .FilterConfig ;
4039import javax .servlet .ServletException ;
4746import java .util .Collection ;
4847import java .util .List ;
4948
50- public class RangerHeaderPreAuthFilter extends GenericFilterBean {
49+ public class RangerHeaderPreAuthFilter implements Filter {
5150 private static final Logger LOG = LoggerFactory .getLogger (RangerHeaderPreAuthFilter .class );
5251
53- public static final String PROP_HEADER_AUTH_ENABLED = "ranger.admin.authn.header.enabled" ;
54- public static final String PROP_USERNAME_HEADER_NAME = "ranger.admin.authn.header.username" ;
55- public static final String PROP_REQUEST_ID_HEADER_NAME = "ranger.admin.authn.header.requestid" ;
52+ public static final String PROP_HEADER_AUTH_ENABLED = "ranger.admin.authn.header.enabled" ;
53+ public static final String PROP_USERNAME_HEADER_NAME = "ranger.admin.authn.header.username" ;
54+ public static final String PROP_REQUEST_ID_HEADER_NAME = "ranger.admin.authn.header.requestid" ;
5655
5756 private boolean headerAuthEnabled ;
5857 private String userNameHeaderName ;
5958
6059 @ Autowired
6160 UserMgr userMgr ;
6261
63- @ PostConstruct
64- public void initialize (FilterConfig filterConfig ) throws ServletException {
62+ public RangerHeaderPreAuthFilter () {
63+ loadConfiguration ();
64+ }
65+
66+ @ Override
67+ public void init (FilterConfig config ) throws ServletException {
68+ loadConfiguration ();
69+ }
70+
71+ private void loadConfiguration () {
6572 headerAuthEnabled = PropertiesUtil .getBooleanProperty (PROP_HEADER_AUTH_ENABLED , false );
6673 userNameHeaderName = PropertiesUtil .getProperty (PROP_USERNAME_HEADER_NAME );
6774 }
6875
6976 @ Override
70- public void doFilter ( ServletRequest request , ServletResponse response , FilterChain chain ) throws IOException , ServletException {
71- HttpServletRequest httpRequest = ( HttpServletRequest ) request ;
77+ public void destroy () {
78+ }
7279
80+ @ Override
81+ public void doFilter (ServletRequest request , ServletResponse response , FilterChain chain ) throws IOException , ServletException {
7382 if (headerAuthEnabled ) {
7483 Authentication existingAuthn = SecurityContextHolder .getContext ().getAuthentication ();
7584
7685 if (existingAuthn == null || !existingAuthn .isAuthenticated ()) {
77- String username = StringUtils .trimToNull (httpRequest .getHeader (userNameHeaderName ));
86+ HttpServletRequest httpRequest = (HttpServletRequest ) request ;
87+ String username = StringUtils .trimToNull (httpRequest .getHeader (userNameHeaderName ));
7888
7989 if (StringUtils .isNotBlank (username )) {
8090 List <GrantedAuthority > grantedAuthorities = getAuthoritiesFromRanger (username );
@@ -101,8 +111,8 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha
101111 * Loads authorities from Ranger DB
102112 */
103113 private List <GrantedAuthority > getAuthoritiesFromRanger (String username ) {
104- List <GrantedAuthority > ret = new ArrayList <>();
105- Collection <String > roleList = userMgr .getRolesByLoginId (username );
114+ List <GrantedAuthority > ret = new ArrayList <>();
115+ Collection <String > roleList = userMgr .getRolesByLoginId (username );
106116
107117 if (roleList != null ) {
108118 for (String role : roleList ) {
0 commit comments