- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在 Java EE 7 后端上使用 AngularJS 和 REST API。该项目部署在 Wildfly 应用服务器上,我对证券评级有一些疑问:
为了加密/解密数据,我使用 CryptoJS 在服务器端 (Java) 加密和解密,但显然我们必须以明文形式发送密码,密码和盐仅被加密。我的问题是为什么密码是明文?它应该是 secret 的,然后也加密,不是吗?
对于 REST API,Java EE 7、HTTP 安全 header (basic-auth) 使用的标准是什么? Json 访问 token ?以及它是如何工作的,在 cookie 上将用户 session / token 存储在哪里?我只想知道如何使用 Angular 来完成。
也许我可以使用具有基于表单的身份验证的经典 JAAS,然后在服务器端使用 request.login() 进行身份验证,然后我的 EJB 将全部受到@Role 的保护。
在 AngularJS 中保护页面的方法是什么?目前我正在使用 web.xml 并放置 URL 模式,也许有更好的方法?
我已经找到了很多这样的例子:
AngularJs and Jboss and JAAS (全方位安全)
how to integrate angularjs and java jaas based authentication?
一些用户提到了这一点:
* index.html page should contain token inside html to avoid CSRF
* token shouldn't be stored in a cookie storage
* Each request should be signed with header param
* Server should validate every request by passed header
* If cookie usage is a must you should validate referer in order to prevent CSRF
但是没有具体的例子说明如何实现这个,尤其是CSRF。
最佳答案
To Encrypt/decrypt data I am using CryptoJS to encrypt and decrypt on server side ( Java ) but apparently we have to send the passphrase in clear, the cipher and salt are only encrypted. My question is why the passphrase is clear text ? it should be secret and then encrypted as well no ?
一旦您以明文形式发送 key (密码?) - 加密就没有用了。
要实现合理的客户端-服务器安全,请使用 HTTPS。简单、有效且更安全。通常,在 Web 应用程序端加密不是一个好主意,因为用户或“中间人”可以检索或修改 key 和数据。
不同的情况是端到端安全性,当客户端加密、发布加密数据并按原样存储/处理它们时,加密 key 仅对用户可用。如果不是这种情况,并且服务需要数据以进行进一步操作,则 HTTPS 是可行的方法。
For the REST API, what is the standard to use for Java EE 7, HTTP security header (basic-auth) ? Json Access token ? and how it really works, where to store user session/token, on a cookie ? I just want to know how to do it with Angular.
有效地列出了您的选项。这是你的决定。每个选项都有其优点和缺点。基本上 - 如果您谈论的是 (REST) 服务,那么使用什么技术应该无关紧要。
对于直接从浏览器调用的 REST 服务,我将省略基本身份验证(否则用户会弹出身份验证窗口)
您可以使用 JWT token (由应用程序 secret 签名,只需添加一些到期日期),但您无法“注销”用户,只能等到 token 到期。优点是, token 是“自给自足”的,您无需担心 session 管理。客户端在 Authorization HTTP header 中发送 JWT token ,您只需对其进行解码、验证,然后您就可以从 token 中获取身份。
另一个选项是 session token (cookie 或作为授权 header 发送),您需要在其中管理 session (存储 token ,在注销时清除 token ,...)。使用应用程序服务器 session cookie 会使您的服务无法被其他应用程序使用(仍然是一个问题 - 您是否希望/需要第三方可重用服务),但您实现了内置授权(JAAS、 Angular 色等)。
Maybe I can use the classic JAAS with form-based authentication and then having request.login() on server side to be authenticated then my EJB will be all protected by @Role.
确实,这是一种验证和授权用户并颁发 token (jwt、cookie 等...)的方式。
What is the way to protect pages in AngularJS ? For the moment I am using the web.xml and putting the URL patterns, maybe there is a better way ?
默认的web授权应该就可以了。
仍然 - 保持简单。根据我的经验,静态资源(网页、图像、脚本、css)应该是静态的,它们是否公开可用并不重要。重要的是执行(操作、数据...)作为服务公开,这就是您进行适当身份验证和授权的地方。
玩得开心
关于java - AngularJS - Java EE REST 安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30864398/
我想了解为什么一些 Jakarta EE 规范是空的。 例如 Jakarta Annotations规范由免责声明和快速描述(3 行)组成,但是有 Javadoc . 当 JCP 负责 J2EE 规范
我们将在我们的开发中使用 WebSphere 8.0 应用服务器。 我们的网络应用程序使用 Amazon aws java sdk,而后者又使用 Apache http-client 4.1。 但是
Java EE Web Profile 认证服务器(如 JOnAS)和 Java EE Full Platform 认证服务器(如 JBoss AS)有什么区别? 最佳答案 这是一张很好的图片来解释它
Java EE 5 和 Java EE 6 的主要区别是什么? 最佳答案 Oracle 有一篇由三部分组成的文章详细介绍了这些更改:Introducing the Java EE 6 Platform
自从我将 web.xml 从 Java-EE-5 迁移到 Java-EE-6 后,我的应用程序出现问题。这是我部署应用程序时得到的堆栈跟踪: 24 août 2011 14:10:45 org.apa
我想让我的 Java EE 应用程序可插入。主应用程序将部署在一个ear 中,但它在EJB 中的代码将包含插件的入口点。插件可以部署在它们自己的 jar 文件中。有什么好的框架可以做到这一点吗?我正在
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我有一个关于 EE 容器如何控制事务的问题。这是为我的问题提供一些上下文的伪代码。这不是我编码的方式,所以请留在问题上,不要将主题演变成其他内容。 考虑以下两个服务和相关 Controller 。这两
如果在应用程序初始化期间发生异常,是否有任何方法可以防止 Java EE 应用程序启动?在从 JSR-77 抛出未处理的异常之后,我基本上是在寻找一种方法来使应用程序进入“j2ee.state.fai
我们正在开发几个独立的应用程序/模块,我们将它们部署到 Glassfish 3.1.1 应用程序服务器上。在某些情况下,这些应用程序需要通过远程接口(interface)调用彼此的方法。打包这些远程接
我对 Java 有所了解,但对 Enterprise Java 完全陌生。我正在尝试使用 NetBeans 6.1 和 GlassFish Application Server。 请指导我一些资源,这
这个问题在这里已经有了答案: Java / Jakarta EE web development, where do I start and what skills do I need? [close
我有现有的Java EE Web应用程序。我还有一个新的Grails 1.3.7应用程序。 要求是将此Grails应用程序嵌入现有Java EE应用程序中,并将其部署在一个war文件中。请让我知道是否
我熟悉 LAMP 堆栈,多年来已经成功部署了一些基于它的网络站点。我使用过从 Apache + modPerl 到 PHP、Ruby 和 Rails 的一切。通过充分利用缓存,我的 Rails 站点可
这个问题已经有答案了: What exactly is Java EE? (6 个回答) 已关闭 8 年前。 我意识到它的字面意思是Java Enterprise Edition。但我要问的是,这到底
我当前在服务器上有一个 Java EE 应用程序。它使用struts2和Hibernate。我需要访问客户端计算机并搜索客户端计算机检测到的所有蓝牙外设的MAC地址。 那么问题是:如何访问客户端计算机
我们在 StatelessSessionBean 中有一个性能不佳的业务方法。为了提高性能,我们希望将此业务方法拆分为多个异步方法调用。 问题是这些异步方法必须在同一个事务中运行(它们必须使用同一个
希望使用 JSTL 和 Apache Torque 以及某种模板引擎来扩展当前的 Java EE 项目,以便我们可以轻松修改 View 。 有什么建议? 最佳答案 我想 Freemarker是领先的
我有一个在 tomcat 上运行的非常大的 Java EE 应用程序。不幸的是,最近我遇到了堆空间和内存泄漏错误。 所以我想知道是否有一个工具可以帮助我监控我的应用程序并给我一个每个对象的可视化展示,
这个问题在这里已经有了答案: What exactly is Java EE? (6 个答案) 关闭 4 年前。 我知道这个问题已经被问了一百万次,我也做了功课,但最后一件事我不完全理解的是,是否有
我是一名优秀的程序员,十分优秀!