我有一个连接到数据库的java应用程序.
数据库的用户名和密码存储在属性文件中.
避免在属性文件中以明文形式存储密码的常见做法是什么,同时仍保留让用户更改密码的选项?
这里的主要动机是防止有人在管理员编辑属性文件时查看管理员的肩膀并看到密码.
我在这里读到,在C#中有一种内置的方法.
知道java,我不希望找到内置的解决方案,但我想听听其他人在做什么.
如果我找不到任何好的选择,那么我可能会使用将保存在代码中的常量密码对其进行加密.但是我不喜欢这样做,因为它感觉不对.
编辑2012年12月12日 看起来没有魔力,我必须将密码存储在代码或类似的东西中.最后,我们实现了与其中一个答案中提到的Jasypt非常类似的东西.所以我接受了Jasypt的答案,因为它是最接近确定答案的东西.
当我手动创建一个时KeyManager,其中一个步骤是这样的:
KeyManagerFactory.getInstance("SunX509")
Run Code Online (Sandbox Code Playgroud)
这对我需要指定"IbmX509"的IBM jre不起作用.
我的问题:
谢谢,
多龙
我正在使用Azure辅助角色中的Trace类.
我想以一种方式记录异常,这种方式将打印有关异常的所有信息,通常是:
我只看到一个获取字符串和参数的Trace.TraceError方法.是不是有一些等同于Java的日志框架的东西得到异常并且知道如何记录它?(是的,我正在MS世界中迈出第一步......)
我想在我的NodeJS.Timer一个类中使用类型作为类型注释:
const interval: NodeJS.Timer = setInterval(this._func, 1000)
Run Code Online (Sandbox Code Playgroud)
我该如何导入这种类型?我正在使用流量.
我有工作角色,每秒都会对数据库做一些工作.
是否可以初始化DbContext工作人员何时启动并在工作人员的整个生命周期内使用它?
如何处理数据库连接?如果数据库脱机并重新联机怎么办?我还能使用上下文吗?
考虑这个Task.Run例子.它显示了如何创建具有取消支持的任务.
我正在做类似的事情:
Task.Run(()=>{while (!token.IsCancellationRequested()) {...}}, token);
Run Code Online (Sandbox Code Playgroud)
我的问题:
既然我已经有了对取消令牌的引用,为什么将它作为参数传递给Task.Run调用呢?
我经常在示例中看到以下代码:
if (token.IsCancellationRequested) token.ThrowIfCancellationRequested();
这段代码的目的是什么?为什么不return从方法?
我们正在使用Xamarin的Azure Messaging组件注册模板推送通知.到目前为止,我们已使用以下模板注册通知:
@"{""aps"": {""alert"": ""$(message)"",""badge"": ""$(badge)"",""sound"": ""$(sound)""}}"
Run Code Online (Sandbox Code Playgroud)
我们将此字符串传递给Hub.RegisterTemplateAsynciOS应用程序.
从一段时间以前(不到一个月),调用RegisterTemplateAsync生成以下响应:
Apr 3 13:35:03 iPhone MyApp[352] <Warning>: Error Response:<Error><Code>400</Code><Detail>The supplied notification payload is invalid.TrackingId:5dbf4199-cf52-4245-b8e4-acfa4e00cfee_G7,TimeStamp:4/3/2016 10:35:04 AM</Detail></Error>
Apr 3 13:35:03 iPhone MyApp[352] <Warning>: -------------> Notifications: RegisterTemplateAsync error: Fail to perform registration operation. Response:<Error><Code>400</Code><Detail>The supplied notification payload is invalid.TrackingId:5dbf4199-cf52-4245-b8e4-acfa4e00cfee_G7,TimeStamp:4/3/2016 10:35:04 AM</Detail></Error>
Run Code Online (Sandbox Code Playgroud)
它与以前的二进制文件完全相同.现在它没有.
在解决问题时,我们发现问题在于该badge字段.当我们删除它时,注册到通知中心成功:
@"{""aps"": {""alert"": ""$(message)"",""sound"": ""$(sound)""}}";
Run Code Online (Sandbox Code Playgroud)
所以现在我们在AppStore中有一个破碎的生产应用程序,无法再收到通知.
这是在集线器方面发生了变化,还是有可能我们做错了什么?