几种常用的服务器认证机制

OAuth

概括:OAuth是一个开放授权标准,服务器端允许用户在不给第三方软件密码和账户的前提下,让第三方软件访问一定的服务器端资源。

具体实现:OAuth允许第三方软件提供一个令牌,而不是用户名和密码来访问用户在服务器端的某些特定资源。某一个令牌授权只针对一个特定的第三方系统(例如,视频编辑软件在某一特定时间内,例如2小时,只能访问服务器端用户的某些特定资源(例如某一相册中的视频)。

以下为OAuth2.0的流程:

这种基于OAuth的认证机制适用于个人消费类的互联网产品,如社交类APP等应用,不太适合自认证权限管理的企业。

Cookie+Session Auth

概括:cookie+session 客户端访问服务端时,服务器在服务端创建一个session对象用来存储用户的状态信息,此session有个唯一的标识ID,并将此session ID 返回给客户端,客户端将session ID存放在cookie中,此后客户端通过cookie中的session ID与服务器端保持连接。

以下为cookie+sesssion Auth 流程:

 

cookie+session  多用于一些网上商城,但是对于一些原声平台不支持cookie(andorid,windows,ios)。

 

TOKEN Auth

概括:客户端访问服务器端时,服务器端利用某算法生成一个TOKEN返回给客户端,一般存储在cookie中或者http Authorization,下次客户端访问服务器验证客户端的TOKEN来辨别身份。

优势:

TOKEN 生成速度验证速度要比去数据库中检索session ID来的快。

cookie存在跨域问题,而token可以很好的解决跨域问题。

更适用于CDN

TOKEN AUTH 认证过程如下:

TOKEN 的认证过程分为两个方面-首次登录,其后的登录过程。

首次登录:

 

其后的登录过程如下:

 

转载于:https://www.cnblogs.com/zydxx/p/9550939.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 常见的Java应用服务器中间件有Tomcat、Jetty、WebLogic、WebSphere、Jboss等。它们之间的区别主要在以下几个方面: 1. 开发语言和框架支持 2. 部署和管理方式 3. 性能和可扩展性 4. 安全性和稳定性 5. 支持的协议和标准 6. 集成的其他组件和工具 7. 支持的操作系统和硬件平台 8. 许可证和商业模式 9. 社区和生态系统 10. 技术支持和服务等级。 需要根据具体的需求和场景选择合适的中间件。 ### 回答2: Java应用服务器中间件有多种软件,主要包括Tomcat、JBoss、WebLogic、WebSphere、GlassFish、Jetty等。 这些中间件软件在以下方面存在区别: 1. 架构设计:不同的中间件软件采用不同的架构设计,例如Tomcat采用的是单进程单线程模型,而Jetty采用的是多线程模型。 2. 功能支持:中间件软件对于Java EE的支持程度不尽相同,例如WebLogic和WebSphere对Java EE规范支持较为全面,Tomcat则部分支持。 3. 配置管理:不同中间件软件的配置管理方式和灵活性也存在差异,例如WebLogic和WebSphere提供了丰富的可视化配置管理界面。 4. 扩展性:中间件软件的扩展性表现在对于插件机制的支持程度,如Tomcat通过插件可以支持更多的功能。 5. 高可用性:中间件软件在高可用性方面的实现方式也不同,例如WebLogic和WebSphere支持集群部署、故障切换等。 6. 性能表现:中间件软件对于并发请求的处理性能也不同,例如Jetty在并发请求处理方面具有较好的性能表现。 7. 社区支持:不同中间件软件的社区活跃度和支持程度也是选择的因素之一,例如Tomcat的开源社区相对活跃。 8. 版本更新:中间件软件的版本更新也会带来一些新的功能和性能改进,不同软件的版本迭代速度和更新内容也略有差异。 9. 商业支持:部分中间件软件提供商业版和免费版,商业版提供更完善的技术支持和服务。 10. 成本:中间件软件的成本也是选型考虑的因素之一,不同软件的价格和授权方式存在差异。 总之,选择合适的Java应用服务器中间件软件需要综合考虑以上方面的差异以及项目需求和预算等因素。 ### 回答3: Java应用服务器中间件有几种软件,包括Apache Tomcat、IBM WebSphere、Oracle WebLogic、JBoss、GlassFish、Jetty等。这些软件在功能、性能、稳定性和管理方面有一些区别。 1. 版本与支持:不同软件有不同的版本,各版本对Java规范的支持程度可能不同。 2. 开源与商业软件:有些软件是开源的,如Tomcat和JBoss;而有些是商业软件,如WebSphere和WebLogic,需要付费购买。 3. 资源消耗:不同软件在运行时对内存、CPU和网络带宽等资源的消耗可能不同。 4. 扩展性:有些软件提供了丰富的可扩展机制和插件,可以根据需求进行自定义开发。 5. 集群和负载均衡:某些软件提供了内置的集群和负载均衡功能,方便实现高可用和高性能的应用架构。 6. 安全性:不同软件对安全性的支持程度不同,有些提供了强大的安全认证机制,如WebSphere和WebLogic。 7. 管理和监控:软件提供的管理工具和监控机制各不相同,方便管理员对服务器进行配置和监控。 8. 部署方式:各软件提供了不同的部署方式,如WAR文件、EAR文件等,方便开发人员进行应用的部署和发布。 9. 社区和支持:开源软件可能有庞大的社区支持,提供丰富的文档和解决方案;商业软件则有专业的技术支持团队。 10. 适用场景:不同软件适用于不同的场景,如Tomcat适用于小规模应用,WebSphere和WebLogic适用于大型企业级应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值