2012-04-02 54 views
1

xml文件可用于登录目的吗?我想将登录ID和密码存储在xml中,并从java程序中检索它,以检查输入的用户是否与xml中的任何数据匹配。 inshort我想用xml来验证用户。用于登录验证的Xml文件

+0

使用任何框架如弹簧,支柱.....为此? – Java 2012-04-02 06:31:15

+0

不,我正在使用简单的java swing – 2012-04-02 06:32:23

回答

0

您可以将凭据存储在文本文件中吗?当然。这是个好主意吗?很可能不会。

+0

我尝试了通过sax和dom解析器使用xml,但我无法实现它。实际上,我的项目工作,我被告知使用Xml进行登录身份验证,但我无法想出办法。 – 2012-04-02 06:37:49

0

存储简单的密码 - 甚至编码的 - 并通过非安全协议检索它们加密是一个可怕的,可怕的想法。我能想到的最接近的就是SAML。即使在SAML我们建议您:

  • 发送通过HTTPS消息,
  • 加密,
  • 标志XML和
  • 加密填充NameID(通常是用户ID和会话的组合ID或令牌,应在短时间后过期)。

从来没有,我重复从来没有发送密码。 (为什么你需要它?)。

如果你想了解更多关于SAML的Java,我建议使用OpenSAML and/or Shibboleth。 SAML规范是here

我还建议你看看OWASP project,这样你就可以加快安全性。

+0

那么它对我的项目,我不得不做一个演示。其实我非常喜欢使用mysql,但我的向导告诉我他不想要任何数据库,并尝试使用XML来达到这个目的。其实我在我的智慧结束。我尝试了很多东西,但它仍然没有工作。 – 2012-04-02 06:47:15

0

你可以做到。 Here是一个如何读取java中的xml文件的例子。这又不是一个好主意。

0

我认为this link会解释你如何从XML读取数据。您只需读取节点并保存即可。不建议

Another link

0

明文存储密码。 这是一个简单的API来读取/写入Java中的XML文件。

SimpleXML

1

为了使你的XML应用程序安全地保存密码,您将需要一个加密机制。 Bouncy Castle.org为Java提供了一个开放且免费的轻量级加密API。

通过这种方式,您可以在XML文件中存储密码的加密字符串。使用SAX,您就可以开发了。

这个原理和传统上在Unix系统中使用多年的/ etc/passwd机制非常相似。您只需使用XML,而不是文本文件。

你的XML文件看起来像:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!DOCTYPE users SYSTEM "users.dtd"> 
<users> 
    <user> 
     <lastname>John</lastname> 
     <firstname>Doe</firstname> 
     <code>admin</code> 
     <password>DREbKLT4rX3e4j+kh3AXNM0bkjw=</password> 
     <role>Administrator</role> 
    </user> 
... 

你可以找到一个Java例子here,展示了如何使用SAX和Java。