我正在设计一个系统,除了用户名/密码验证之外,用户还可以注册并随后使用客户端证书进行身份验证.
客户端证书必须是由配置的证书颁发机构列表颁发的有效证书,并在出现时进行检查(验证).
在注册阶段,我需要将客户端证书的一部分存储在用户存储库(DB,LDAP,等等)中,以便我可以将使用客户端证书进行身份验证的用户映射到内部"用户".
一个相当明显的选择是使用证书指纹; 但指纹本身是不够的,因为可能会发生冲突(即使它们不可能),因此我们需要存储证书中的其他信息.这个SO问题在这方面也提供了信息.
RFC 2459定义(4.1.2.2)证书序列号在给定CA中必须是唯一的.
综合所有这些,我正在考虑为每个注册用户存储证书序列号和证书颁发者.鉴于客户端证书将被验证并且有效,这应该唯一地标识每个客户端证书.这样,即使续订客户端证书,它仍然有效(序列号保持不变,发行者也是如此).
我错过了什么?
默认情况下,当您使用<ol>
标记创建有序列表时,您会得到以下内容:
1..10..100
...但是有没有办法改变或设置格式,它会将一定数量的前导零附加到列表中?我希望所有数字都排成一行,我的列表将进入数百个所以我需要2个前导零个位数,1个前导零个位数,三个数字没有:
001..010..100
我还没有创建列表但是我想在开始之前知道是否有一个简单或简单的方法来做到这一点?我只需要这个效果的有序列表.不要让它成为普遍的效果.
我正在寻找一种方法将字符串转换为int,然后提取并返回此int中的前4位数字.
注意:它必须保留为String,以便其他方法正常工作.
对于上述2个大O,如果n >> m会发生什么.大O如何改变?在第一种情况下它是否变为O(n).如果是,为什么?
我想根据不同的事件打开和关闭图片框周围的边框颜色/样式.
是否有可以帮助我实现这一目标的属性或功能?
这是我在命名表时尝试遵循的三个最佳实践:
牢记这一切,您如何建议命名保存用户身份的表?
我有一个名为PointOfContact的模型,我用脚手架创建; 所以它应该有一些相似的正确性.
基本上,我想要我的路线的别名.而不是去'/ point_of_contacts',我想'/ pocs',我不希望'/ point_of_contacts'成为有效路线.
我试过这个:
resources :pocs, :controller => "point_of_contacts"
Run Code Online (Sandbox Code Playgroud)
这有助于创建'/ pocs'路线.但是,现在我不确定如何编写我的观点.特别:
<% @point_of_contacts.each do |point_of_contact| %>
<tr>
<td><%= point_of_contact.first %></td>
<td><%= point_of_contact.last %></td>
<td><%= point_of_contact.title %></td>
<td><%= point_of_contact.phone %></td>
<td><%= point_of_contact.email %></td>
<td><%= link_to 'Show', point_of_contact %></td>
</tr>
<% end %>
Run Code Online (Sandbox Code Playgroud)
该代码创建此异常:
No route matches {:action=>"show", :controller=>"point_of_contacts", :id=>#<PointOfContact id: 1, system_id: nil, first: "Tester", last: "Test", title: "", phone: "", email: "", created_at: "2011-03-10 20:03:21", updated_at: "2011-03-10 20:03:21">}
我在结帐时有一些代码,我在会话中设置了一个密钥,如果在结帐时将该密钥设置为false,我需要将它们发送回结算页面.我有它的代码,但我也不能拥有通常在观察者之后运行的任何代码,因为它会调用第三方服务并因为会话中缺少此密钥而返回错误
这是我的代码,我有我想要的一切,但我需要立即发生的响应,并且在调度的事件行被发送后只发送回发送回浏览器的响应.
public function checkForOrdKey(Varien_Event_Observer $observer)
{
$controllerAction = $observer->getControllerAction();
$request = $controllerAction->getRequest();
$controllerName = $request->getControllerName();
$stepData = $this->_getCheckoutSession()->getStepData();
$ordKeyRemoved = $this->_getCheckoutSession()->getOrdKeyRemoved();
// if it is the checkout onepage controller or inventory controller don't do anything
if (isset($controllerName) && $controllerName === "onepage" && $stepData['shipping']['complete'] && $ordKeyRemoved) {
$this->_getCheckoutSession()->setStepData('shipping', 'complete', false);
$result['goto_section'] = 'billing';
Mage::app()->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
$this->_getCheckoutSession()->setOrdKeyRemoved(false);
}
}
Run Code Online (Sandbox Code Playgroud)