小编woj*_*tek的帖子

使用Spring Security进行Spring MVC集成测试

我正在尝试使用mvc-test测试我的登录页面.在我添加spring security之前,我工作得很好.

我的代码是:

 mockMvc.perform(
     post("j_spring_security_check")
                    .param(LOGIN_FORM_USERNAME_FIELD, testUsernameValue)
                    .param(LOGIN_FORM_PASSWORD_FIELD, testPasswordValue))
                .andDo(print())
                .andExpect(status().isOk())
                .andExpect(model().attribute(LOGIN_PAGE_STATUS_VALUE, LOGIN_PAGE_STATUS_FALSE_INDICATOR));
Run Code Online (Sandbox Code Playgroud)

测试类添加了正确的注释:

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = {"classpath:security-context.xml", "classpath:applicationContext.xml", "classpath:test-contexts/test-context.xml" })
Run Code Online (Sandbox Code Playgroud)

我的过滤器已定义(在web.xml中):

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)

当我尝试在@ContextConfiguration中添加web.xml时,它会失败,当我删除它时,我得到一个例外:

java.lang.AssertionError: Status expected:<200> but was:<405>
Run Code Online (Sandbox Code Playgroud)

有没有办法添加DelegatingProxyFilter来测试上下文与我的security-context.xml中定义的配置,使其工作?我尝试了一些注入FilterProxyChain的教程,但它不适用于我的情况.

有人可以帮助我吗?提前致谢

spring-mvc spring-security spring-test-mvc

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

使用xmldsig签名的JAXB编组

是否可以创建jaxb marshaller,它自动将数字签名添加到xml内容中.

例如,如果我有一个定义的类:

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Test {
    @XmlElement
    private String info;

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }
}
Run Code Online (Sandbox Code Playgroud)

而我的由marshaller生成的xml看起来像:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><test><info>value</info></test>
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Security>
        <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
            <SignedInfo>
                <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/>
                <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
                <Reference URI="">
                    <Transforms>
                        <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#envelopedsignature"/>
                    </Transforms>
                    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                    <DigestValue>4432kZ6c2JPwP3A=</DigestValue>
                </Reference>
            </SignedInfo>
            <SignatureValue>Mvbd4603knhh2LZTyE1MIiEF7N46b7GoTzxsqs5eyIXYNG96MFPIMo+P6okzIPzRKrL2obpf3V4D/F0gw5vM/UJwb2MvrCo/5JM5qvV0f09dzWLrgkPyShiQnFL2vzECwmMOrCA=</SignatureValue>
            <KeyInfo>
                <X509Data>
                        <X509Certificate>MIIEnjCCBAegAwIBAgIDJQDMA0GCSqGSICBMGSETU0VOMRgwFgYDVQQHEw82NTAwOCBXaWVzYmFkZW4xGjAYBgNVBkESE9MRElORyBBRzEiMCAGA1UEAxMZSW50ZXJuZXQgQmVudXR6ZXIgU2VydmljZTEqMCgGCSqGSIb3DQEJARbeVydmaWthdEBzY2h1ZmEtb25saW5lLmRlMB4XDTA5MDcyNzEwNTkyNVoXDTEwMDcyNzEwNTkyNVowgZsxCzAJdNVBATAkFMQLmRlMCYGfUdEgQfMB2BG3plcnRpZmlrYXRAc2NodWZhLW9ubGluZS5kZTAfsgkqhkiG9w0BAQQFAAOBgQB7DBly8bqksxrkwcmN2A/xfu3lm0IfGD6PoJ7JFgPq4aHBDWgdUW3EzvRE+cuFGjkoBvATKfcbF7ReTz+4C+dLJShYiN/HxUnxgiO7R2y4c/I4pNnmlfQT261/dNlQ8Wm8pyUeMcr32fxvtoY4dqlQy7GePmrHpR3HE/dMRAd6gA==</X509Certificate>
                </X509Data>
                <KeyValue>
                    <RSAKeyValue>
                        <Modulus>1EN/UxtM2fLYxxDmSxgjSd10AzCxvZtNGAER9j3+OMqZjBXG9uLiZR+GbtOXbsDz3fyiwEfu/FDeeGGESppYAL5foQ72t2ztV5w2GLtTH0K+wrlImmvoTdl6bsdC7RXAsXVxtlkoG0xL7HGwZLvM=</Modulus>
                        <Exponent>AQAB</Exponent>
                    </RSAKeyValue>
                </KeyValue>
            </KeyInfo>
        </Signature>
    </Security>
<test><info>value</info></test>
Run Code Online (Sandbox Code Playgroud)

我希望marshaller有办法做到这一点?如果没有,也许还有其他简单的方法来签署一个xml?

提前致谢

java xml security jaxb xml-dsig

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

从字符串中删除重音符号

最近我在 StringUtils 库中发现了非常有用的方法,即

\n\n
StringUtils.stripAccents(String s)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我发现它对于删除任何特殊字符并将其转换为某些 ASCII“等效字符”确实很有帮助,例如 \xc3\xa7=c 等。

\n\n

现在我正在为一位德国客户工作,他确实需要做这样的事情,但仅限于非德国字符。任何元音变音都应保持不变。我意识到 strinAccents 在这种情况下没有用处。

\n\n

有人对这些东西有一些经验吗?\n是否有任何有用的工具/库/类或者可能是正则表达式?\n我尝试编写一些解析和替换这些字符的类,但为所有人构建这样的映射可能非常困难语言...

\n\n

任何建议都适用...

\n

java regex string

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