小编cde*_*zaq的帖子

加载时间在grails中编织

我正在尝试在Grails项目中使用加载时编织,以便能够序列化和反序列化对象并自动注入spring依赖项.经过一番搜索后,我发现了一个简单的例子,它似乎按预期工作.但在将相同的配置应用于简单的Grails项目后,我遇到了很多错误.例如:

[TomcatInstrumentableClassLoader@413a2870] error at org/springframework/web/servlet/theme/AbstractThemeResolver.java::0 class 'org.springframework.web.servlet.theme.AbstractThemeResolver' is already woven and has not been built in reweavable mode
Run Code Online (Sandbox Code Playgroud)

为了测试这个,我创建了一个新的grails项目并更改了applicationContext.xml:

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context.xsd">

<context:spring-configured />
<context:load-time-weaver aspectj-weaving="autodetect" weaver-class="org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver"/>
Run Code Online (Sandbox Code Playgroud)

在这个文件中我还创建了一个新bean:

<bean class="be.testweaving.Person" scope="prototype">
    <property name="name" value="Timon"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

这定义了Person类的原型并将值Timon注入name属性.

我把它打包成战争使用grails war并在tomcat服务器上部署它.这个tomcat有org.springframework.instrument.tomcat-3.0.5.RELEASE.jar他的lib目录,在部署之后我看到了我上面提到的大量错误列表.

有没有人能够在Grails中配置加载时间编织?

grails aop spring

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

如何允许用户使用Spring Security覆盖?

在我的Spring MVC Web应用程序中,只有具有足够权限的用户才能访问某些区域.我需要能够允许用户以不同的用户身份登录才能使用这些页面(有点像覆盖),而不仅仅是"拒绝访问"消息.

如何使用Spring Security执行此操作?

这是我期待的流程,更详细一点:

  1. 用户A从外部应用程序进入页面X,并通过标头进行身份验证
  2. 用户A没有使用页面X的权限,因此被带到登录屏幕,并显示一条消息,表明他们必须以具有足够特权的用户身份登录才能使用此页面
  3. 用户B登录并具有足够的特权,并被带到第X页.

注意:页面X有一个需要保留的大而长的查询字符串.

如何使用Spring Security执行此操作?


这是我的spring安全配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/security 
            http://www.springframework.org/schema/security/spring-security-3.1.xsd">

    <debug />

    <global-method-security pre-post-annotations="enabled">
        <!-- AspectJ pointcut expression that locates our "post" method and applies 
            security that way <protect-pointcut expression="execution(* bigbank.*Service.post*(..))" 
            access="ROLE_TELLER"/> -->
    </global-method-security>

    <!-- Allow anyone to get the static resources and the login page by not applying the security filter chain -->
    <http pattern="/resources/**" security="none" />
    <http pattern="/css/**" security="none" />
    <http pattern="/img/**" security="none" …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc spring-security

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

Grails/GORM:创建一对一的可选关系

我正在设计一个系统,用户之间的帖子/讨论可以升级成票.在一个特定的地方,我正在尝试创建一对一的可选关系,但遇到了某些问题.下面给出了聚光灯下实体的精简版本.

规则:

  1. 如果需要,帖子可以成为票证.(可选的)
  2. 机票必须有一个帖子.(强制)

Post.groovy

class Post {

        String title
        String description
        String postedBy

        Ticket ticket

        static hasMany = [comments: Comment]

    static constraints = {
        title(blank:false)
        description(blank:false)
        postedBy(blank:false)
        ticket (nullable:true,unique:true)
    }
}
Run Code Online (Sandbox Code Playgroud)

Ticket.groovy

class Ticket {

        String title
        String description
        String postedBy

        Post post

        static hasMany = [responses: Response]

        static constraints = {
                title(blank:false)
                description(blank:false)
                postedBy(blank:false)
                post (nullable:false,unique:true)
        }

}
Run Code Online (Sandbox Code Playgroud)

这在某种程度上起作用.我可以:

  1. 创建一个帖子,将故障单属性保留为null如果以及何时将帖子升级为故障单
  2. 我可以明确地将Post的ticket属性设置为指向父票证.

但是,此映射不会在域级别强制执行.它为Ticket1指向Post1的情况留出了空间,但Post1指向了Ticket2.

我尝试static hasOne = [post: Post]Ticket类中使用a ,但后来才知道它要求static belongsTo = [ticket: Ticket]在 …

grails grails-orm domain-model

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

在Java中表示和操纵概率和百分比的正确方法是什么?

在Java中计算和操作概率,然后将其表示为百分比时,用于表示它们的最佳数据结构是什么?

本机double并且float看起来不是特别理想的候选者,因为它们具有奇怪的舍入问题,当舍入发生多次并且变得复杂时可能引入错误.

BigInteger适用于计算排列和组合,BigDecimal看起来它可能是非整数值的一个很好的候选者,但有没有更适合处理百分比的东西?

注意:在这种情况下,计算的概率在性质上与涉及卡片的概率相似,但有数百张卡.对于更多的数学倾向,我特别使用多变量Hypergeometric_distributions.

java

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

Grails嵌套域 - 将addAll错误添加到顶级域对象

我有一个像这样的Grails域:

class User {
....
Address address
}
Run Code Online (Sandbox Code Playgroud)

在保存用户的同时,我也要验证Address对象,并将Address对象的所有错误添加到User对象本身.

我正在尝试编写一个自定义验证器it.validate(),但我无法找到"addAll"地址错误消息的方法.

java validation error-handling grails

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

与OAUTH的春天休息模板

我的控制器层用spring oauth2包裹.我正在编写集成测试来测试对控制器的api调用,所以我决定使用RestTemplate.

以下是我通过curl使用的命令:

curl -v --cookie cookies.txt --cookie-jar cookies.txt  "http://localhost:8080/oauth/token?client_id=my-trusted-client&grant_type=password&scope=trust&username=xxxx&password=xxxxxx"
Run Code Online (Sandbox Code Playgroud)

这将返回一个访问令牌,我用它来调用api:

curl -v -H "Authorization: Bearer Access toekn value" "http://localhost:8080/profile/1.json"
Run Code Online (Sandbox Code Playgroud)

在使用时RestTemplate,我能够获得访问令牌,但现在我想传递此令牌来进行api调用:

DefaultHttpClient client = new DefaultHttpClient();
    HttpHeaders headers = new HttpHeaders();
    headers.set("Authorization: Bearer", accessToken);
    System.out.println(accessToken);
    HttpEntity<String> entity = new HttpEntity<String>(headers);
    System.out.println(restTemplate.exchange("http://localhost:8080/xxxx",HttpMethod.GET,entity,Object.class));
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

Exception in thread "main" org.springframework.web.client.HttpClientErrorException: 401 Unauthorized
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:75)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:486)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:443)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:401)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:377)
at com.gogii.service.SKUService.testGetAllSKU(SKUService.java:20)
Run Code Online (Sandbox Code Playgroud)

我们如何使用经过身份验证的呼叫RestTemplate

spring spring-mvc spring-security

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

不再需要Spring Security ROLE_前缀?

我正在研究如何创建自定义角色前缀,直到我意识到它无关紧要.只要我的db中的角色符合以下内容:

<security:intercept-url pattern="/person/myProfile/**" access= "hasRole('BlaBla')" />
Run Code Online (Sandbox Code Playgroud)

并且它不是示例,在db中我确实设置角色BlaBla进行测试并且它有效.

当我得到不同的行为时,我不喜欢 - 很多人都有设置自定义前缀来创建自定义角色的问题.在这里会发生什么,我应该期待隐藏的岩石吗?

我有3.0.7版本.在我对权限的查询中,我没有"默认"值......是否由版本引起?

roles spring-security prefix

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

根据文本中包含的文本数量扩展textarea(jquery)

我怎样才能让textarea最初只有1行,但是当文本到达行尾时添加另一行,并继续这样做直到最多5行?

css jquery textarea

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

Intellij IDEA-Grails GDSL无效

我试图在IDEA中使用GDSL Scripts作为我的grails项目.

我尝试了"指南:GDSL指南"中所示的内容.我遵循的步骤是:

  1. 在我的项目主页中创建了一个myDef.gdsl文件(即在
    包含grails-app,web-app等的文件夹中)
  2. 在该文件中,我添加了以下代码:

    def ctx2 = context(ctype: "com.myPackage.MyClass")
    
    contributor(ctx2) {
        method(name: 'withLock', type: 'void', params: [closure: { }])
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 单击"激活".

但是,当我这样做时,它仍然没有显示任何自动完成或识别:

Myclass m = new MyClass()
m.withLock() //This is not recognised
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么???:(

细节:

  • 创意系列:终极
  • 创意版本: 107.535

dsl grails intellij-idea

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

Hibernate以及如何避免模态的名称更改

我使用Hibernate几年但不确定Query和Criteria的用法.

我明白,Hibernate的优势之一就是在一个地方控制字段名称.如果我有以下代码:

List cats = sess.createCriteria(Cat.class)
.add( Restrictions.like("name", "Fritz%") )
.add( Restrictions.between("weight", minWeight, maxWeight) )
.list();
Run Code Online (Sandbox Code Playgroud)

如果我在java对象中更改Cat的"名称"怎么办?

即使使用重构替换(如在Elipse中),它也不会将元素检测为需要更改的内容!

如果是这样,你如何在Java中维护字段名称?

java refactoring hibernate

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