小编Dav*_*žic的帖子

如何(正确)在Java中创建mailto URL(URI)?

鉴于:

String email1 = "simple@example.org";

// legal email address according to wikipedia [1]
String email2 = "\"()<>[]:,;@\\\"!#$%&'*+-/=?^_`{}| ~.a\"@example.org";
Run Code Online (Sandbox Code Playgroud)

创建mailto:URI(以String对象的形式)的最佳/正确方法是什么?

我试过了:

String uri = new URI("mailto", the_email_address, null).toString();
Run Code Online (Sandbox Code Playgroud)

这是我得到的最接近的,但它没有在电子邮件地址的本地部分编码问号(?),但根据RFC 6068它应该.它也没有在RFC中的示例中失败,例如"not@me"@example.org或者不太可能address = example.com.

[1] Valid_email_addresses示例

PS:还有一些有用的信息应该加上mailto:超链接吗?


我为此解决了这个问题:

import org.apache.http.client.utils.URIBuilder;
// from Apache HttpClient
// maven group: org.apache.httpcomponents artifact: httpclient

String emailURL = new URIBuilder().setScheme("mailto").setPath(the_email_address).toString();
Run Code Online (Sandbox Code Playgroud)

java mailto uri

17
推荐指数
1
解决办法
3312
查看次数

在某些情况下,是否会忽略Spring选项create-session ="never"?

对于某些Web服务,我想禁用会话.我在配置中添加了create-session ="never":

<beans:bean id="http403EntryPoint"
    class="org.springframework.security.web.authentication.Http403ForbiddenEntryPoint"/>
<http use-expressions="true" entry-point-ref="http403EntryPoint"
    create-session="never">
    <custom-filter ref="x509Filter" position="PRE_AUTH_FILTER"/>
</http>
Run Code Online (Sandbox Code Playgroud)

这适用于大多数情况,除非预先验证的用户具有未在应用程序中注册的客户端证书,因此我们的AuthenticationUserDetailsS​​ervice会抛出UsernameNotFoundException.如果用户没有证书或具有已注册的证书,则不会创建任何会话(HTTP响应中没有Set-Cookie标头).在所描述的情况下,发送cookie.即使客户端证书已更改(基本上允许会话固定攻击 - 应用程序使用已保存的身份验证而不是在每次调用时重新进行身份验证),也会对每个后续请求评估它(cookie或会话).

我们使用Spring security 3.0.5.使用Tomcat 6和7以及JBoss 7.1.1进行测试.

为什么在描述的场景中创建会话?

PS:通过在AbstractPreAuthenticatedProcessingFilter中设置checkForPrincipalChanges可能会解决会话固定问题,但我对为何创建会话的答案感兴趣.

spring-security

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

物化视图使用HAVING子句快速刷新?

在Oracle 11g上,我试图创建一个FAST REFRESH ON COMMIT包含HAVING子句的物化视图.

数据库数据仓库指南说:

快速刷新的一般限制

物化视图的定义查询限制如下:

  • 它不能包含带子查询的HAVING子句.

但是如果我HAVING count(*)>1向其他工作的物化视图添加(注意:没有子查询),我会收到此错误:

ORA-12054:无法为实例化视图设置ON COMMIT刷新属性

dbms_mview.explain_mview() 说:

REFRESH_FAST                   N
REFRESH_FAST_AFTER_INSERT      N   2011 a HAVING clause is present
Run Code Online (Sandbox Code Playgroud)

实际命令:

SQL>  create materialized view mv1 refresh fast on commit as
  2      select UserId, count(*) from USERS group by UserId;

Materialized view created.

SQL> DROP MATERIALIZED VIEW mv1;

Materialized view dropped.

SQL> create materialized view mv1 refresh fast on commit as
  2      select UserId, count(*) from USERS …
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle11g

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

能否让 Oracle SQL Developer 根据需要重新连接?

Oracle SQL Developer 中是否有选项(我使用版本 4.1.5)使其在需要时重新连接到数据库?

例如,如果我启动了一个 SQL 脚本但数据库已断开连接,那么它应该以最小的麻烦重新连接并执行脚本而不是给出SQL Error: Closed Connection消息。

注意:我对 keep-alive(大多数相关问题讨论的内容)不感兴趣。如果我今天不使用它,那么断开连接就可以了。我只是希望它下次使用时重新连接。

oracle oracle-sqldeveloper

5
推荐指数
1
解决办法
3763
查看次数

如何处理XML中非法的字符串数据字符?

考虑用Java实现的这个Web服务:

@WebMethod(operationName = "test1")
@WebResult(name = "test1", targetNamespace = "http://test.example.org/")
public String test1()
{
    return "foo\u0000bar"; // "foo" + NUL + "bar"
}
Run Code Online (Sandbox Code Playgroud)

使用(版本2.5.10和2.7.18)apache CXF,这将返回(省略SOAP信封):

<ns2:test1>foo[NULL byte here]bar</ns2:test1>
Run Code Online (Sandbox Code Playgroud)

哪个是无效的XML.

其他Web服务库是否以不同方式处理NULL(以及XML中无效的其他字符)?什么是正确的标准处理?

xml web-services cxf

5
推荐指数
1
解决办法
105
查看次数