2017-03-05 57 views
0

我想保护我的链接(宁静的地址)。所以经过很多研究,我发现HDIV framework并没有使用它。 现在我想在Spring启动时配置HDIV framework,但它有一些错误!我无法配置这个。任何人都可以帮助我?如何在Spring引导中配置HDIV

我的pom.xml:

<dependency> 
       <groupId>org.apache.tomcat.embed</groupId> 
       <artifactId>tomcat-embed-jasper</artifactId> 
       <scope>provided</scope> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.tomcat.embed</groupId> 
       <artifactId>tomcat-embed-el</artifactId> 
       <scope>provided</scope> 
      </dependency> 
      <dependency> 
       <groupId>javax.servlet</groupId> 
       <artifactId>jstl</artifactId> 
      </dependency> 
      <dependency> 
       <groupId>org.company</groupId> 
       <artifactId>framework-boot</artifactId> 
       <version>1.0.0-releases</version> 
       <type>jar</type> 
       <exclusions> 
        <exclusion> 
         <groupId>org.springframework.security</groupId> 
         <artifactId>spring-security-core</artifactId> 
        </exclusion> 
        <exclusion> 
         <groupId>org.springframework.security</groupId> 
         <artifactId>spring-security-config</artifactId> 
        </exclusion> 
        <exclusion> 
           <groupId>org.springframework.security</groupId> 
          <artifactId>spring-security-web</artifactId> 
        </exclusion> 
        <exclusion> 
         <groupId>org.company</groupId> 
         <artifactId>font</artifactId> 
        </exclusion> 
       </exclusions> 
      </dependency> 
      <dependency> 
       <groupId>org.hibernate</groupId> 
       <artifactId>hibernate-core</artifactId> 
      </dependency> 
      <dependency> 
       <groupId>org.company</groupId> 
       <artifactId>framework-web-new</artifactId> 
       <version>2.0.0-releases</version> 
       <type>jar</type> 
      </dependency> 



      <!-- <HDIV></HDIV> --> 


      <dependency> 
       <groupId>org.springframework.security</groupId> 
       <artifactId>spring-security-core</artifactId> 
       <version>4.1.1.RELEASE</version> 
       <exclusions> 
        <exclusion> 
         <artifactId>spring-aop</artifactId> 
         <groupId>org.springframework</groupId> 
        </exclusion> 
       </exclusions> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework.security</groupId> 
       <artifactId>spring-security-config</artifactId> 
       <version>4.1.1.RELEASE</version> 
       <exclusions> 
        <exclusion> 
         <artifactId>spring-aop</artifactId> 
         <groupId>org.springframework</groupId> 
        </exclusion> 
       </exclusions> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework.security</groupId> 
       <artifactId>spring-security-web</artifactId> 
       <version>4.1.1.RELEASE</version> 
       <exclusions> 
        <exclusion> 
         <artifactId>spring-aop</artifactId> 
         <groupId>org.springframework</groupId> 
        </exclusion> 
       </exclusions> 
      </dependency> 



      <dependency> 
       <groupId>org.hdiv</groupId> 
       <artifactId>spring-boot-starter-hdiv</artifactId> 
       <version>1.0.0</version> 
      </dependency> 

      <dependency> 
       <groupId>org.hdiv</groupId> 
       <artifactId>hdiv-config</artifactId> 
       <version>3.2.0</version> 
      </dependency> 
      <dependency> 
       <groupId>org.hdiv</groupId> 
       <artifactId>hdiv-spring-mvc</artifactId> 
       <version>3.2.0</version> 
      </dependency> 
      <dependency> 
       <groupId>org.hdiv</groupId> 
       <artifactId>hdiv-core</artifactId> 
       <version>3.2.0</version> 
      </dependency> 

和我的配置类是:

@Configuration 
@EnableHdivWebSecurity 

public class MyHdivConfig extends HdivWebSecurityConfigurerAdapter { 


@Override 
public void configure(SecurityConfigBuilder builder) { 

    builder.maxPagesPerSession(1) 
    .randomName(true) 
    .showErrorPageOnEditableValidation(true) 
    .stateParameterName("mohsen") 
    .validateUrlsWithoutParams(true) 


    .sessionExpired() 
      .homePage("/").loginPage("/Login.jsp") 


      .and() 
      .reuseExistingPageInAjaxRequest(true) 
      ; 
} 


// First Page 
    @Override 
    public void addExclusions(ExclusionRegistry registry) { 

    registry.addUrlExclusions("/Login.jsp").method("GET"); 
} 



//EditableValidation 
@Override 
public void addRules(RuleRegistry registry) { 

    registry.addRule("customValidation").acceptedPattern("^[[email protected]\\-_]*$"); 
} 

@Override 
public void configureEditableValidation(ValidationConfigurer validationConfigurer) { 

    validationConfigurer.addValidation(".*").rules("customValidation"); 
} 

,但我有许多错误的,那些是:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hdivConfig' defined in class path resource [org/hdiv/config/annotation/DelegatingHdivWebSecurityConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.hdiv.config.HDIVConfig]: Factory method 'hdivConfig' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'editableDataValidationProvider' defined in class path resource [org/hdiv/config/annotation/DelegatingHdivWebSecurityConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.hdiv.validator.EditableDataValidationProvider]: Factory method 'editableDataValidationProvider' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'editableValidationRepository' defined in class path resource [org/hdiv/config/annotation/DelegatingHdivWebSecurityConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.hdiv.validator.ValidationRepository]: Factory method 'editableValidationRepository' threw exception; nested exception is java.lang.NoSuchMethodError: org.hdiv.config.annotation.ValidationConfigurer.addValidation(Ljava/lang/String;)Lorg/hdiv/config/annotation/ValidationConfigurer$ValidationConfig$RuleConfigurer; 
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1128) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1023) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:751) 
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) 
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) 
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761) 
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) 
at org.baharan.Application.main(Application.java:48) 
aused by: java.lang.NoSuchMethodError: org.hdiv.config.annotation.ValidationConfigurer.addValidation(Ljava/lang/String;)Lorg/hdiv/config/annotation/ValidationConfigurer$ValidationConfig$RuleConfigurer; 
at org.hdiv.spring.boot.autoconfigure.HdivAutoConfiguration$HdivDefaultConfiguration.configureEditableValidation(HdivAutoConfiguration.java:93) 
at org.hdiv.config.annotation.configuration.HdivWebSecurityConfigurerComposite.configureEditableValidation(HdivWebSecurityConfigurerComposite.java:66) 
at org.hdiv.config.annotation.DelegatingHdivWebSecurityConfiguration.configureEditableValidation(DelegatingHdivWebSecurityConfiguration.java:82) 
at org.hdiv.config.annotation.AbstractHdivWebSecurityConfiguration.getValidationsData(AbstractHdivWebSecurityConfiguration.java:416) 
at org.hdiv.config.annotation.AbstractHdivWebSecurityConfiguration.editableValidationRepository(AbstractHdivWebSecurityConfiguration.java:369) 
at org.hdiv.config.annotation.DelegatingHdivWebSecurityConfiguration$$EnhancerBySpringCGLIB$$61ea94d.CGLIB$editableValidationRepository$34(<generated>) 
at org.hdiv.config.annotation.DelegatingHdivWebSecurityConfiguration$$EnhancerBySpringCGLIB$$61ea94d$$FastClassBySpringCGLIB$$3c036c14.invoke(<generated>) 
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) 
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:356) 
at org.hdiv.config.annotation.DelegatingHdivWebSecurityConfiguration$$EnhancerBySpringCGLIB$$61ea94d.editableValidationRepository(<generated>) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:497) 
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) 
... 63 common frames omitted 

感谢您的帮助。

+0

删除已包含的'starter'已经提供的显式添加的'hdiv'依赖项。 –

+0

谢谢..但它不工作! –

回答

1

看一看在HDIV应用示例:https://github.com/hdiv/spring-boot-sample-hdiv/blob/master/pom.xml

更新HDIV起动器的最后一个版本1.1.0和删除不必要的依赖。

+0

谢谢。我可以将春季启动 - 启动器 - hdiv中的课程复制到我的项目中!是最好的方式?但我的问题解决了! –

+0

为什么你需要复制类?您可以在应用程序中扩展Hdiv配置。例如:https://github.com/hdiv/spring-boot-sample-hdiv/blob/master/src/main/java/org/hdiv/spring/boot/sample/SampleHdivApplication.java#L84 – gillarramendi

+0

当然是的更好地感谢所有 –