Skip to content

Commit

Permalink
SHIBUI-1774
Browse files Browse the repository at this point in the history
Continued efforts to get configuration correct
  • Loading branch information
chasegawa committed Jul 7, 2021
1 parent 3bcc0c9 commit d0d227a
Showing 1 changed file with 11 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@
import edu.internet2.tier.shibboleth.admin.ui.security.repository.UserRepository;
import edu.internet2.tier.shibboleth.admin.ui.service.EmailService;

import org.apache.commons.lang3.StringUtils;
import org.pac4j.core.config.Config;
import org.pac4j.springframework.security.web.CallbackFilter;
import org.pac4j.springframework.security.web.SecurityFilter;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureOrder;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
Expand All @@ -21,6 +22,7 @@
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.web.authentication.www.BasicAuthenticationFilter;
import org.springframework.security.web.firewall.StrictHttpFirewall;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;

import java.util.Optional;

Expand All @@ -29,7 +31,9 @@
@ConditionalOnProperty(name = "shibui.pac4j-enabled", havingValue = "true")
@AutoConfigureAfter(EmailConfiguration.class)
public class WebSecurity {

@Value("${shibui.logout-url:/dashboard}")
private static String logoutUrl;

@Bean("webSecurityConfig")
public WebSecurityConfigurerAdapter webSecurityConfigurerAdapter(final Config config, UserRepository userRepository,
RoleRepository roleRepository, Optional<EmailService> emailService,
Expand Down Expand Up @@ -67,6 +71,11 @@ protected void configure(HttpSecurity http) throws Exception {
.addFilterAfter(new AddNewUserFilter(pac4jConfigurationProperties, userRepository, roleRepository,
emailService), SecurityFilter.class);
http.authorizeRequests().anyRequest().fullyAuthenticated();

http.exceptionHandling().accessDeniedHandler((request, response, accessDeniedException) -> response.sendRedirect("/unsecured/error.html"))
.and().formLogin().and().httpBasic().and()
.logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")).logoutSuccessUrl(StringUtils.isAllEmpty(logoutUrl) ? "/dashboard" : logoutUrl);

http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.ALWAYS);
http.csrf().disable();
http.headers().frameOptions().disable();
Expand Down

0 comments on commit d0d227a

Please sign in to comment.