Grails Spring Security 3服务springSecurityService为空
用户中的springSecurityService服务始终为空 我似乎无法以以下方式引用包本身Grails Spring Security 3服务springSecurityService为空,grails,grails-plugin,Grails,Grails Plugin,用户中的springSecurityService服务始终为空 我似乎无法以以下方式引用包本身 import grails.plugin.springsecurity.*; 尽管spring安全登录页面确实出现了,gradle也没有抱怨丢失了什么 似乎没有发生DI 使用者 您可以尝试Holders.applicationContext.getBean('springSecurityService')而不是注入。您可以尝试Holders.applicationContext.getBean('s
import grails.plugin.springsecurity.*;
尽管spring安全登录页面确实出现了,gradle也没有抱怨丢失了什么
似乎没有发生DI
使用者
您可以尝试Holders.applicationContext.getBean('springSecurityService')而不是注入。您可以尝试Holders.applicationContext.getBean('springSecurityService')而不是注入。这是因为您注释掉了
this()
在构造函数中-该行代码调用生成的默认构造函数,该构造函数不执行DI。文档的“新增内容”部分对此进行了描述。要么删除构造函数并使用传统的映射构造函数,要么恢复该行代码。这是因为您在构造函数中注释掉了this()
——该行代码调用生成的默认构造函数,该构造函数不执行DI。文档的“新增内容”部分对此进行了描述。要么删除构造函数并使用传统的映射构造函数,要么恢复该行代码。自Grails 3.2.8以来,GORM实体中的服务注入在默认情况下被禁用。因此,如果希望将服务springSecurityService注入到以前的域类中,则需要启用autowire。
grails app/conf/application.yml
圣杯:
戈姆:
#是否自动关联实体。
#由于性能原因,默认情况下禁用。
autowire:true自Grails 3.2.8以来,GORM实体中的服务注入在默认情况下被禁用。因此,如果希望将服务springSecurityService注入到以前的域类中,则需要启用autowire。 grails app/conf/application.yml 圣杯: 戈姆: #是否自动关联实体。 #由于性能原因,默认情况下禁用。
autowire:是的你看到了吗?是的。有一个插件->。下载链接->你看到了吗?是的。不过有一个插件->下载链接->可以使用!!虽然找不到与this()相关的文档。很抱歉,它位于-请参阅以“Where practical”链接开头的注释已断开,您能重新加载它吗?这是有效的!!虽然找不到与this()相关的文档。抱歉,它位于-请参阅以“Where practical”链接开头的注释中,您是否可以重新加载它?Hanks,花了一段时间才了解发生了什么。对于那些感兴趣的人来说,这一切都可以追溯到这个问题:谢谢,花了一段时间才弄清楚到底发生了什么。对于那些感兴趣的人来说,这一切都可以追溯到这个问题:谢谢你。我尝试了Transcenter、autowired和其他一切功能,但只有这个可以工作。谢谢你。我尝试了Transcenter、autowired和其他一切,但只有这一款有效
package com.sciencecanvas.mykingdom
class User implements Serializable {
private static final long serialVersionUID = 1
transient springSecurityService
String username
String password
boolean enabled = true
boolean accountExpired
boolean accountLocked
boolean passwordExpired
User(String username, String password) {
//this()
this.username = username
this.password = password
}
@Override
int hashCode() {
username?.hashCode() ?: 0
}
@Override
boolean equals(other) {
is(other) || (other instanceof User && other.username == username)
}
@Override
String toString() {
username
}
Set<Role> getAuthorities() {
UserRole.findAllByUser(this)*.role
}
def beforeInsert() {
encodePassword()
}
def beforeUpdate() {
if (isDirty('password')) {
encodePassword()
}
}
protected void encodePassword() {
password = springSecurityService?.passwordEncoder ? springSecurityService.encodePassword(password) : password
}
static transients = ['springSecurityService']
static constraints = {
username blank: false, unique: true
password blank: false
}
static mapping = {
password column: '`password`'
}
}
buildscript {
ext {
grailsVersion = project.grailsVersion
}
repositories {
mavenLocal()
maven { url "https://repo.grails.org/grails/core" }
}
dependencies {
classpath "org.grails:grails-gradle-plugin:$grailsVersion"
classpath 'com.bertramlabs.plugins:asset-pipeline-gradle:2.5.0'
classpath "org.grails.plugins:hibernate:4.3.10.5"
}
}
plugins {
id "io.spring.dependency-management" version "0.5.2.RELEASE"
id 'com.jfrog.bintray' version '1.2'
}
version "0.1"
group "monopolyserver"
apply plugin: 'maven-publish'
apply plugin: "spring-boot"
apply plugin: "war"
apply plugin: "asset-pipeline"
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: "org.grails.grails-web"
apply plugin: "org.grails.grails-gsp"
ext {
grailsVersion = project.grailsVersion
gradleWrapperVersion = project.gradleWrapperVersion
}
assets {
minifyJs = true
minifyCss = true
}
repositories {
mavenLocal()
maven { url "https://repo.grails.org/grails/core" }
}
dependencyManagement {
imports {
mavenBom "org.grails:grails-bom:$grailsVersion"
}
applyMavenExclusions false
}
dependencies {
//custom plugins
compile 'org.grails.plugins:spring-security-core:3.0.0.M1'
compile "org.springframework.boot:spring-boot-starter-logging"
compile "org.springframework.boot:spring-boot-starter-actuator"
compile "org.springframework.boot:spring-boot-autoconfigure"
compile "org.springframework.boot:spring-boot-starter-tomcat"
compile 'mysql:mysql-connector-java:5.1.36'
compile "org.grails:grails-dependencies"
compile "org.grails:grails-web-boot"
compile "org.grails.plugins:hibernate"
compile "org.grails.plugins:cache"
compile "org.hibernate:hibernate-ehcache"
compile "org.grails.plugins:scaffolding"
//compile ':spring-security-core:2.0-RC5'
runtime "org.grails.plugins:asset-pipeline"
testCompile "org.grails:grails-plugin-testing"
testCompile "org.grails.plugins:geb"
// Note: It is recommended to update to a more robust driver (Chrome, Firefox etc.)
testRuntime 'org.seleniumhq.selenium:selenium-htmlunit-driver:2.44.0'
console "org.grails:grails-console"
}
task wrapper(type: Wrapper) {
gradleVersion = gradleWrapperVersion
}