小编Inf*_*igo的帖子

85
推荐指数
10
解决办法
16万
查看次数

如何使用Fiddler2或类似工具从Java Web应用程序捕获HTTP(S)流量?

我想捕获我的Web应用程序通过HTTPS从CAS服务器发送和接收的数据.我尝试使用Fiddler2,但无法从Java Web应用程序捕获流量.我似乎需要将其配置为使用Fiddler2作为代理.我该怎么做?

一些额外的信息.我已经用keytool导入了Fiddler的证书.在Tomcat 7上运行Web应用程序.使用IntelliJ Idea.

java fiddler capture

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

无法使用logback.groovy,但logback.xml有效

我想使用Groovy DSL配置Logback.该文件非常简单:

import ch.qos.logback.classic.encoder.PatternLayoutEncoder
import ch.qos.logback.core.ConsoleAppender
import static ch.qos.logback.classic.Level.DEBUG
import static ch.qos.logback.classic.Level.INFO

appender("stdout", ConsoleAppender) {
    encoder(PatternLayoutEncoder) {
        pattern = "%d %p [%c] - <%m>%n"
    }
}

root(INFO, ["stdout"])
Run Code Online (Sandbox Code Playgroud)

我使用Gradle构建我的应用程序并使用jettyRun运行它.我收到以下错误:

Failed to instantiate [ch.qos.logback.classic.LoggerContext]
Reported exception:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'ch.qos.logback.core.ConsoleAppender[null]' with class 'ch.qos.logback.core.ConsoleAppender' to class 'ch.qos.logback.core.Appender'
    at  org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToType(DefaultTypeTransformation.java:360)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.castToType(ScriptBytecodeAdapter.java:599)
at ch.qos.logback.classic.gaffer.ConfigurationDelegate.appender(ConfigurationDelegate.groovy:119)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at org.codehaus.groovy.runtime.metaclass.MixinInstanceMetaMethod.invoke(MixinInstanceMetaMethod.java:53)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:308)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
Run Code Online (Sandbox Code Playgroud)

但是,当我切换到等效的XML配置时,一切正常.我究竟做错了什么?

使用Logback 1.0.0.尝试使用Logback 1.0.3.

logback gradle consoleappender

11
推荐指数
2
解决办法
7827
查看次数

逃离杰克逊的斜线

我使用Jackson生成JSON对象并将它们直接写入HTML的标记,如下所示:

   <script>
     var data = $SomeJacksonWrapper.toJson($data);
   </script>
Run Code Online (Sandbox Code Playgroud)

如果包含一些字符串'</script>',则此代码会中断.转义正斜杠(/)将解决问题,并且它由JSON的规范赋予.

我如何在杰克逊中启用它?

java json escaping jackson

10
推荐指数
3
解决办法
9018
查看次数

简单的骨干搜索页面 - 你会怎么做?

我想使用Backbone实现一个简单的搜索页面.它不是单页面应用程序,但仍希望使用Backbone构建我的JavaScript代码.搜索页面包含搜索表单和搜索结果.搜索是通过AJAX完成的,必须保存在历史记录中.从历史记录加载页面时,应将搜索查询参数加载到表单中.搜索表单和搜索结果可以实现为Backbone.View.但是,我在将它们粘合在一起时遇到了问题.

我认为我需要某种控制器.有一个Backbone.Router,但它是正确的地方吗?应该在哪里放置AJAX呼叫?

欢迎任何有关此页面结构的建议.

search-form backbone.js

8
推荐指数
1
解决办法
3746
查看次数

Spring SecurityContext在错误页面上返回null身份验证

我正在尝试为403(拒绝访问)和500(内部服务器错误)等错误编写自定义错误页面.它们将从Velocity模板呈现,并使用用户的语言环境翻译所有消息.身份验证和区域设置解析在应用程序中正常工作.

我在web.xml中设置了所需页面的位置,在webmvc-context.xml中我添加了requet-to-view controller via.

我遇到的问题是SecurityContextHolder.getContext().getAuthentication()在错误页面视图中返回null.看着我看到的日志:

06.10 14:42:26 DEBUG - context.HttpSessionSecurityContextRepository(HttpSessionSecurityContextRepository.java:351) -  - SecurityContext stored to HttpSession: 'org.springframework.security.core.context.SecurityContextImpl@ece7b0b7: Authentication: ...
06.10 14:42:26 DEBUG - context.SecurityContextPersistenceFilter(SecurityContextPersistenceFilter.java:89) -  - SecurityContextHolder now cleared, as request processing completed
06.10 14:42:26 DEBUG - servlet.DispatcherServlet(DispatcherServlet.java:691) -  - DispatcherServlet with name 'foo' processing GET request for [/foo/app/error/403.html]
Run Code Online (Sandbox Code Playgroud)

因此,无论是Spring还是Tomcat重定向到错误页面并且请求都已完成,因此上下文被清除.并且新的"请求"不会经历Spring Security过滤器,因此无法恢复上下文.

通常的方法不起作用,但似乎身份验证信息在会话中的某个位置,也因为AbstractTemplateView记录以下内容:

Exposing session attribute 'SPRING_SECURITY_CONTEXT' with value [org.springframework.security.core.context.SecurityContextImpl@edfbd958: Authentication: org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken@edfbd958...
Run Code Online (Sandbox Code Playgroud)

如何正确获取正常页面和错误页面的行为相同?

java authentication spring spring-security

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

JavaScript getter/setter和扩展对象

我正在研究JavaScript中的getter和setter以及它们与扩展对象的扩展函数的关系,例如jQuery的$ .extend和Underscore的_.extend.代码设置如下:

var test = {
    get size() { return this._size; },
    set size(val) { this._size = val; },
}   

test.size = "LARGE";
console.log(test.size);

//$.extend(test, { get size() { return "MEDIUM"; } });
_.extend(test, { get size() { return "MEDIUM"; } });

console.log(test.size);
test.size = "SMALL";
console.log(test.size);
Run Code Online (Sandbox Code Playgroud)

在Chrome和Firefox中,我得到:

LARGE
MEDIUM
SMALL
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下那里发生了什么吗?为什么在打电话给原来的二传手后,原来的吸气剂也会恢复?

javascript getter setter extend

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

从Spring和Tomcat中的索引页重定向

我有一个Spring应用程序,它运行在Tomcat上,位于:http://example.com/foo/

DisplatcherServlet映射到app/*,例如,索引页面是:

http://example.com/foo/app/index.html
Run Code Online (Sandbox Code Playgroud)

这是因为我有其他servlet(对于HttpRequestHandlers),例如映射到service/*.该方案使用方便,因为这种方式app /和service /可以具有不同的安全设置.

我想要的是http://example.com/foo重定向到http://example.com/foo/app/index.html.

我该如何实现这一目标?

redirect spring tomcat

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

为较大的选择查询的每一行选择一个表或数组

使用Oracle 11g

假设我们有两个表:

CREATE TABLE items (
    item_id NUMBER(22,0)
);

CREATE TABLE messages (
    item_id NUMBER(22,0),
    message_code NUMBER(22,0)
);
Run Code Online (Sandbox Code Playgroud)

哪里有一个(项目)到多个(消息)的关系.我想在单个查询中选择所有内容以将其转换为java.有可能写这样的查询,它会给我输出像:

ID         MESSAGE
----------------------------------
1          (100, 105, 201)
2          (100, 105)
Run Code Online (Sandbox Code Playgroud)

MESSAGE列是一个数组或类似的东西(不是连接字符串)?

sql oracle oracle11g

3
推荐指数
1
解决办法
707
查看次数

在PL/SQL中,将表作为参数,对其进行过滤并返回

我正在努力学习PL/SQL函数.我正在尝试编写一个函数,它将接受一个对象表,根据一些标准过滤该表(我打算测试其他表的值)和返回过滤表.

我的表类型定义如下:

CREATE TYPE test_obj AS OBJECT (test_id NUMBER(16,0), test_name VARCHAR2(50));
CREATE TYPE test_tbl AS TABLE OF test_obj;
Run Code Online (Sandbox Code Playgroud)

该功能可能如下所示.

CREATE OR REPLACE
FUNCTION filterme(i_test IN test_tbl) RETURN test_tbl AS 
  o_test test_tbl;
BEGIN
  --NOT WORKING: SELECT INTO o_test FROM i_test t WHERE t.test_id > 10;
  RETURN o_test;
END filterme;
Run Code Online (Sandbox Code Playgroud)

但是我把它放进去了什么?

oracle plsql

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