小编mah*_*ler的帖子

使用注释进行跟踪日志记录

我一直在使用一个公司的代码库,该公司的策略是编写大量的跟踪日志记录.因此,几乎每个方法都有一段代码,如下所示:

String LOG_METHOD = "nameOfMethod(String,List<Long>):void";
if(logger.isTraceEnabled()) { 
    Object[] params = new Object[] { string, list };
    logger.trace(CompanyMessages.newMethodInstanceMessage(this, LOG_METHOD, params)); 
}
Run Code Online (Sandbox Code Playgroud)

并以此结束(在finally-clause中或在方法的最后:

if(logger.isTraceEnabled()) { 
    logger.trace(CompanyMessages.leaveMethodInstanceMessage(this, LOG_METHOD)); 
}
Run Code Online (Sandbox Code Playgroud)

实际上有更多的代码,但这是基本的想法.这使得代码变得混乱,其他编码人员不断地使用他们自己的解释来搞乱它,这些解释不使用CompanyMessages格式化监视工具要读取的消息所需的特定类.所以我正在寻找一种方法来摆脱上面的所有代码,并提供所有需要跟踪记录的方法,注释如下:@LogBefore('logLevel')&@LogAfter('logLevel').

我选择这个解决方案的原因是为了使其他开发人员不必学习任何新东西,而是使用注释而不是代码.我在一个服务器环境中工作,我们部署了数百个Web应用程序和数十个开发人员.所以我一直在寻找一种在Web应用程序中实现它的方法,而无需额外的编码或额外的大型库.这意味着我正在寻找一个小的,稳定的AOP实现,使用类似于我提出的注释,在每个Web应用程序中易于配置.表现也很重要.用AOP实现这个的最简单的例子是什么?

编辑:我确实找到了与我正在寻找的非常类似的东西,但这有几个问题.必须配置所有需要日志记录的类,这比仅使用注释更耗费资源.弹簧配置会<aop:aspectj-autoproxy/>修复吗?

java logging trace annotations aspects

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

在Google App Engine中生成用户帐户

对于项目,我将在Google App Engine上创建一个应用程序,其中:

  • 讨论领导者可以在网站上注册他们的电子邮件地址(或OpenID或Google帐户)以使用它.
  • 在应用程序管理页面中,他们可以创建一个小组讨论,他们可以根据他们的电子邮件地址添加用户
  • 然后,这些用户应该会收到生成的帐户详细信息(如果他们还没有帐户),这样他们就可以使用新创建的帐户登录该组讨论.

我不希望讨论领导者拥有Google帐户或OpenID帐户以注册该应用程序,并且所有用户的其他帐户必须由讨论负责人生成.

但Google App Engine似乎只支持Google帐户和OpenID帐户.我该怎么做?是否存在用于在Google App Engine中创建领导者帐户和生成用户帐户的现有模式,该模式仍然支持GAE用户API?

python openid google-app-engine

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

Apple eciesEncryptionCofactorVariableIVX963SHA256AESGCM 与 BouncyCastle ECCDHwithSHA256KDF

我正在尝试使用 Apple 算法eciesEncryptionCofactorVariableIVX963SHA256AESGCM加密 Java ( BouncyCastle ) 和 iOS 之间的通信。

苹果的算法没有很好的文档记录,但我发现这篇文章很有帮助。

我还在BouncyCastle 文档中找到了以下算法,它似乎与我正在寻找的内容很接近:

  • ECCDHwithSHA256KDF它使用 X9.63 KDF 和 SHA256 作为 PRF 来表示 EC 辅因子 DH
package com.example.ios.encryption;

import org.bouncycastle.jce.ECNamedCurveTable;
import org.bouncycastle.jce.ECPointUtil;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.jce.spec.ECNamedCurveSpec;
import org.bouncycastle.jce.spec.ECParameterSpec;
import org.bouncycastle.util.encoders.Base64;

import java.math.BigInteger;
import java.security.*;
import java.security.spec.ECPoint;
import java.security.spec.ECPrivateKeySpec;
import java.security.spec.ECPublicKeySpec;
import java.util.Arrays;

import javax.crypto.Cipher;
import javax.crypto.KeyAgreement;
import javax.crypto.SecretKey;
import javax.crypto.spec.GCMParameterSpec;
import javax.crypto.spec.SecretKeySpec;

public class IOSEncryptionECwithAES {

    public void testDecrypt() {

        // Receiver EC Public Key
        String …
Run Code Online (Sandbox Code Playgroud)

java bouncycastle ios aes-gcm ecies

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