小编Cra*_*aig的帖子

使用Spnego/Kerberos进行Spring启动 - 配置问题 - 需要ServletContext来配置默认的servlet处理

让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)

java kerberos spring-security spnego spring-boot

6
推荐指数
1
解决办法
6371
查看次数

@NamedStoredProcedureQuery with Spring Data JPA Repository - 类型不能为空错误

我有一个 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)

所以有些事情我不确定

  • 该实体不再受 'vw_bsc_request_summary' 支持,所以我是否完全删除了 @Table 注释?如果我这样做了,那么 JPA 会抱怨无法找到具有默认名称 RequestSummary 的表
  • 如果此实体不受表或视图支持,我是否应该包含 @Entity 注释?

使用上面的代码,当我尝试运行集成测试来调用该方法时

@Test
public void …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

java ×2

hibernate ×1

jpa ×1

kerberos ×1

spnego ×1

spring ×1

spring-boot ×1

spring-security ×1