让spring-security-kerberos-web与Spring Boot应用程序一起工作,我似乎已经达到了一个死胡同.
我的项目中有一个@Configuration类,如下所示
package com.co.dept.bsc.configuration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.FileSystemResource;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.kerberos.authentication.KerberosAuthenticationProvider;
import org.springframework.security.kerberos.authentication.KerberosServiceAuthenticationProvider;
import org.springframework.security.kerberos.authentication.sun.GlobalSunJaasKerberosConfig;
import org.springframework.security.kerberos.authentication.sun.SunJaasKerberosClient;
import org.springframework.security.kerberos.authentication.sun.SunJaasKerberosTicketValidator;
import org.springframework.security.kerberos.web.authentication.SpnegoAuthenticationProcessingFilter;
import org.springframework.security.kerberos.web.authentication.SpnegoEntryPoint;
import org.springframework.security.web.authentication.www.BasicAuthenticationFilter;
import com.co.dept.bsc.service.DummyUserDetailsService;
@Configuration
@EnableWebSecurity
public class AuthProviderConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(final HttpSecurity http) throws Exception {
http.exceptionHandling().authenticationEntryPoint(spnegoEntryPoint()).and().authorizeRequests().antMatchers("/", "/home")
.permitAll().anyRequest().authenticated().and().formLogin().loginPage("/login").permitAll().and().logout().permitAll()
.and()
.addFilterBefore(spnegoAuthenticationProcessingFilter(authenticationManagerBean()), BasicAuthenticationFilter.class);
}
@Override
protected void configure(final AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(kerberosAuthenticationProvider())
.authenticationProvider(kerberosServiceAuthenticationProvider());
}
@Bean
public KerberosAuthenticationProvider kerberosAuthenticationProvider() { …Run Code Online (Sandbox Code Playgroud) 我有一个 JPA 实体类 RequestSummary,它最初是从数据库视图中填充的。出于性能原因,我正在尝试重构它以使用存储过程,但在正确设置它时遇到问题。
我有一个存储过程'sp_bsc_request_summary',它以一个staffId 作为参数。
我的 spring 数据存储库看起来像这样
public interface RequestSummaryRepository extends JpaRepository<RequestSummary, Long> {
@Procedure("procedureFindAll")
public List<RequestSummary> procedureFindAll(@Param("staffId") Long staffId);
}
Run Code Online (Sandbox Code Playgroud)
我的 JPA 实体看起来像这样......
@Entity
@Table(name = "vw_bsc_request_summary")
@NamedStoredProcedureQuery(
name = "procedureFindAll",
procedureName = "sp_bsc_request_summary",
resultClasses = {RequestSummary.class},
parameters = {@StoredProcedureParameter(mode = ParameterMode.IN, type = Long.class, name = "staffId")})
public class RequestSummary {
@Id
@Column(name = "bsc_request_id")
private Long id;
....etc
Run Code Online (Sandbox Code Playgroud)
所以有些事情我不确定
使用上面的代码,当我尝试运行集成测试来调用该方法时
@Test
public void …Run Code Online (Sandbox Code Playgroud)