对外接口暴露的问题

本文探讨了对外接口暴露的问题,指出即使某些方法理论上不应直接对用户开放,但设计疏忽可能导致用户能直接访问。作者认为应注重接口设计,通过职责分配和访问控制来限制用户权限,例如使用protected修饰符或通过接口/抽象类实现。文中提供了一个简化示例,展示了如何改进以减少不必要的接口暴露,鼓励读者分享更多解决方案。
摘要由CSDN通过智能技术生成
该问题主要是关于对外接口暴露的问题(此接口并非指java中的interface,而是指用户编程时可使用的接口),例如有一个类的大部分方法是不应该暴露给用户的,然而事实上,因为设计问题,任何一个用户都可以创建该类的实例以至于使用它,虽然在实际当中,可能没有用户会去这样做,不过我认为如果能够尽量避免这种情况应该是最好的选择。但是又该如何避免呢?

我想这种问题出现的主要原因体现在设计者在对象职责分配上想尽可能的达到分散职责让程序更容易进行维护,这种目的是非常正确的,不过在实现上可能没有注意到接口暴露的问题,导致出现了我所说的情况。在群中讨论的时候,并没有人认同我的看法,也许我是错的,也许我是对的,不过这无关紧要,重要的是能够通过交流发现问题促进进步。

举个简单的例子:


代码
引用提到,服务网关对外暴露统一规范的接口,包括各个子系统的交互接口对外开放接口、开发加密接口接口文档等服务。这意味着shiro也可以通过服务网关对外暴露接口。 然而,引用指出shiro主要是用于应用的安全认证和授权,它并没有专门的对外暴露接口的功能。shiro在JavaSE环境和JavaEE环境下都可以使用,但它并不是一个专门用于提供对外接口的框架。 所以,总结来说,虽然shiro可以在JavaEE环境中使用,但它并没有直接对外暴露接口的功能,这个功能需要通过其他方式实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [单点登录源码](https://download.csdn.net/download/gelunbu321/10197348)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [shiro 提供对外接口 实现一致性权限](https://blog.csdn.net/weixin_38168728/article/details/101475034)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [安全权限框架 —— Shiro(一)](https://blog.csdn.net/baidu_39560928/article/details/119929154)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值