问题标签 [service-provider]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cryptography - SP 元数据:用于签名和加密的证书
规范说:
OASIS 安全断言标记语言 (SAML) V2.0 的元数据
2.4.1.1 元素
<KeyDescriptor>
该
<KeyDescriptor>
元素提供有关实体用于签署数据或接收加密密钥的加密密钥的信息,以及其他加密详细信息。其KeyDescriptorType
复杂类型由以下元素和属性组成:
use
[可选的]可选属性,指定所描述的键的用途。值来自 KeyTypes 枚举,由值
encryption
和组成signing
。
<ds:KeyInfo>
[必需的]直接或间接标识键的可选元素。
据我所知,为了双向发送安全数据,我应该:
- 我自己的私钥
- 我自己的公钥
- 收件人的公钥
我应该在 SP 元数据中指定什么密钥的证书,我可以使用相同的证书进行签名和加密吗?
IdP 的供应商提供了所谓的“元数据模板”,其中指明了应该拼写的内容和位置。
这是相关部分(逐字):
我这样做:
这没用。
因此,AFAIK 用于签名我应该使用我的私钥证书,而对于加密我应该使用 IdP 的开放密钥证书。
恕我直言,应该是这样。
我对吗?
single-sign-on - 创建服务提供商 SSO 元数据的正确方法是什么
我想测试我新编写的服务提供商 (SP),即 SAML2.0 消费端点。
为此,我想使用TestShib或SSOCircle创建一个测试身份提供者 (IdP) 。这两项服务都要求我提供适当的 SP 元数据来描述我的新 SP 端点。
我知道 Shibboleth 安装后,将使用以下路径为我执行此操作:
- [我的域]/Shibboleth.sso/元数据
但是,文件顶部的警告动摇了我对生成结果的信心,该警告指出:
这只是示例元数据。请勿在未经审核的情况下按原样提供,也不要实时提供给您的合作伙伴。
此外,当然,您需要安装 Shibboleth,这可能是不可能的。
那么创建/生成 SP 元数据的最佳方式是什么?
laravel - 如何在运行时从包中取消注册或覆盖已注册的 ServiceProvider?
我正在注册我自己的自定义 FormBuilder 和 HtmlBuilder 类,它们在 composer 包中扩展了本地 Laravel 对应项。但是,我很难让它们在运行时在我的应用程序中被识别,而无需手动'Illuminate\Html\HtmlServiceProvider'
从 app.php 配置中的提供程序数组中删除。
我需要能够在运行时以某种方式实现这一点。
- 有没有办法在运行时覆盖注册的服务提供者?
- 如果没有,有没有办法在运行时删除注册的服务提供者?
- 是否有更好/更有效/更有效的方法来实现这一目标?
logging - 如何在 Laravel 中注册 ServiceProvide 时记录消息?
所以我有一个 Laravel 服务提供者,我想在应用它时创建一个 DEBUG 日志条目:
如何才能做到这一点?
php - 验证器的 Laravel 自定义服务提供者
我想覆盖类isValidatable
中的方法()Illuminate\Validation\Validator
。我通过创建一个扩展 Validator 并仅覆盖isValidatable
方法的类(在 Illuminate 之外)来做到这一点。
我认为这会起作用,除非我不确定如何为 Validator 类(或实际CustomLaravelValidator
类)创建服务提供者。我之前创建过服务提供者,但在 Validator 服务提供者内部似乎发生了很多事情(Illuminate\Validation\ValidationServiceProvider
我之前创建过服务提供者,但在 Validator 服务提供者 ( )因此,我不知道此类的自定义服务提供者应该是什么样子。
这是我的 CustomLaravelValidator 类:
这是 Laravel 的默认 ValidationServiceProvider:
谁能告诉我我的自定义服务提供商的外观?
saml - SAML 2.0 服务提供者实施
我正在使用 spring-security-saml-sample 代码在 java 中实现 SAML2.0 ServiceProvider。成功登录响应后重定向到应用程序的根路径(欢迎文件)。如何将其重定向到任何控制器?
谢谢,光辉
php - 向构造函数注入多个参数是不好的做法吗?
我正在开发一个相当复杂的物流管理系统,它将不断发展成为其他几个与 ERP 相关的模块。因此,我试图尽可能多地采用 SRP 和开放/关闭原则,以便于扩展和基于域的管理。
因此,我决定使用 Laravel 和以下模式(不确定这是否有名称):
我将在我的示例中使用 PRODUCT 对象。对象/实体/域有一个类
class ProductService {}
这个类有一个服务提供者,它包含在提供者数组中并且也是自动加载的:
ProductServiceServiceProvider
服务提供者实例化(制作)ProductRepository
一个接口。该接口当前有一个称为EloquentProductRepository
implementation(s) 的 MySQL(和一些 Eloquent),并ProductRepositoryServiceProvider
绑定了同样加载并在 providers 数组中的 implementation。
现在一个产品有许多不同的属性和与其他领域的关系,因为其他领域(或实体)需要完全分离并再次遵守上述原则(SRP 等)。我决定为它们也有相同的结构我为产品做...我知道有些人可能认为这太过分了,但我们需要让系统非常可扩展,老实说,我喜欢有条理并有一个统一的模式(不需要那么多时间并在以后为我节省了很多)。
我的问题是这个。ProductService 处理产品的所有业务逻辑并使“产品”成为它的样子,它将通过构造函数在创建它的实例时注入几个依赖项。
这是它目前所拥有的:
将尽可能多的参数传递给 PHP 中的构造函数是不好的做法(请忽略服务的长名称,因为在确定 ERP 名称空间时这些名称可能会改变)?
正如下面 Ben 所回答的那样,在这种情况下它不是。我的问题与 OOP 无关,而与性能等有关。原因是这个特定的类 ProductService 是 Web 开发人员对控制器所做的事情,即他们可能(并且违反原则)将所有数据库关系添加到一个 ProductController 中处理存储库服务(数据库等)并附加关系,然后它突然成为您的业务逻辑。
在我的应用程序中(我看到大多数应用程序都是这样),Web 层只是另一层。MVC 负责 Web 层,有时也负责其他 API,但除了与 MVC 中的视图和 JS 框架相关之外,我不会有任何逻辑。所有这些都在我的软件中。
总之:我知道这是一个非常可靠的设计,依赖项被注入并且它们确实是依赖项(即产品必须有税并且产品确实有重量等)并且它们可以很容易地与其他类交换,这要归功于接口和服务提供者。现在感谢答案,我也知道在构造函数中注入这么多依赖项是可以的。
我最终会写一篇关于我使用的设计模式以及我为什么在不同场景中使用它们的文章,如果您对此感兴趣,请关注我。
感谢大家
php - 使用 $this->app->share() 在 Laravel 4.1 中正确注册服务提供者
我已经编写了这个图像上传服务,但问题是我不断收到以下错误。我已经尝试了很多建议,但我似乎没有克服它。
错误类型 ReflectionException,消息类 upload.image 不存在","file":"C:\xampp\htdocs\tippy\vendor\laravel\framework\src\Illuminate\Container\Container.php",第 501 行
图片上传服务.php
这是 UploadServiceProvider.php
这是我的 ImageUpload.php 外观
最后我自动加载了提供程序
并给班级起别名
任何帮助将非常感激。
metadata - SAML 2.0 SP 元数据:证书的目的和用途
这是SP元数据的一部分。
参考:OASIS 安全断言标记语言 (SAML) V2.0 的元数据
在签名和加密证书中选择相同(或不同)证书有什么好处吗?
在这里包含签名证书的目的是什么?
如果消息通过 https 发送,则提供传输层加密。我们还需要在这里包含加密证书吗?
php - 在 Laravel 中,你可以在哪里放置一个服务提供者类?
我想在 Laravel 中创建一个服务器提供程序。
我希望这个服务提供在它自己的命名空间下。
我应该把这门课放在哪里?通常我会删除一个自定义类
但是,在 after执行app/models
之前不会添加为自动加载源。app/start/global.php
这对于服务提供商来说为时已晚,因为所有服务提供商都在bootstrap/start.php
.
有没有一种方法可以创建服务提供者,而无需将类放在作曲家的vendor
文件夹中或与你的类图一起composer.json
玩?
换句话说,Laravel 是否会在加载之前自动加载类bootstrap/start.php
,而不需要额外的作曲家配置。
(对于不可避免的“你为什么不只是”,我想避免作曲家的原因是我试图找出 Laravel 服务提供者所需的最低限度的代码和配置)