我想编写一个Web应用程序,它使用由身份提供者发布的SAML 2.0令牌进行身份验证.据我所知,根据这个问题,PHP世界中有一个可行的解决方案,使用simpleSAMLphp.
Java世界中是否存在等效方法?常见的servlet容器或应用程序服务器是否有开箱即用的解决方案和/或教程?
在我基于Maven的项目中,我使用Lombok来保存一些样板代码.此外,我正在使用一个Spring数据库,它使用AspectJ来完成工作.遗憾的是,由于AspectJ编译器重新编译Java文件,因此Lombok和AspectJ不能很好地一起开箱即用.因此,实施的龙目岛的Getter和Setters将丢失.
我决定使用Lombok Maven插件来删除我的代码.然后将此代码传递给AspectJ.这是基本流程:
Sources in /src/main/java or /src/test/java
=> [Delombok]
=> Delomboked sources in /target/generated-sources/delombok or /target/generated-test-sources/delombok
=> [AspectJ]
=> Compiled results in /target/classes or /target/test-classes
Run Code Online (Sandbox Code Playgroud)
但是,这种方法的一个缺点是:我似乎已经失去了使用IntelliJ的调试支持.在/ src/main/java或/ target/generated-sources/delombok Java文件中设置的断点永远不会被命中.我使用IntelliJ Maven插件运行项目,选择生命周期项(例如"test"),调试钩子.可悲的是,断点永远不会受到打击.
可以做些什么来获得调试支持?
Web部件生命周期描述如下:
在页面加载
- 构造函数
- 的OnInit
- 负载
- 如果Web部件是可连接的,则调用ConnectionConsumer方法
- CreateChildControls ......
On 1st Postback(PostBack点击处理程序通过公共属性设置ViewState)
- 构造函数
- 的OnInit
- 的CreateChildControls
- 负载
- PostBack点击处理...
On 2nd Postback(PostBack点击处理程序通过公共属性设置ViewState)
- 构造函数
- 的OnInit
- LoadViewState
- 的CreateChildControls
- 负载 ...
正如您所看到的,OnLoad和CreateChildControls会更改其顺序.这在我的代码中引入了一些困难,因为我需要收集我以前在OnLoad元素中执行的各种数据.
在后期阶段是否有任何理由改变订单?
是否有观察员可以用来观察产品从购物车中取出时的事件?我还没找到.
我发现checkout_cart_update_items_after如果通过改变产品数量来移除产品,可以使用哪些产品,但是当用户使用移除按钮时则不能使用.我现在看到的唯一选择checkout_cart_save_after是每当推车改变时使用.当然,这需要定制逻辑来检查哪个产品被删除.不完美.
那么是否有更好的方法来注意删除事件?
ADFS 2.0是否支持本维基百科文章中提及的SAML 1.1协议和Web SSO配置文件,或者仅支持SAML 1.1令牌?
我想开一个关于Clojure的会议.你能推荐一个可以通过Clojure函数编程优雅解决的问题吗?你能指出涵盖这个主题的资源吗?
我已经开始对XACML和外部授权进行一些研究.现在我有一个现有的应用程序,它使用RBAC模型.然而,实现有很多缺点(角色不容易定义,角色太粗糙).
XACML是一个很好的选择吗?是否存在从RBAC源切换到XACML的任何现有应用程序?有什么缺点吗?
我刚刚开始尝试Spring Roo.它可以很好地帮助构建具有集成持久性的域模型.由于它在方面添加了持久性功能,我开始考虑以下问题:
Roo在一个方面向实际的类/实体添加finders(从数据库中加载满足变量条件的类的实例).在DDD中,这是IMHO的存储库的责任.存储库是显示在设计中的显式类.当然,作为一个方面,存储库功能隐藏在实体中并且几乎不可见.
所以这里有一个问题:一个方面是否是显式存储库类的真正替代品?Roo AOP方法有任何缺点吗?
我正在工作一个小程序,我可以将一个列表写入 json 文件,所以我创建了 Dealer 类的两个实例,然后将其添加到“dealerList”中。
我试图写入名为“Dealer.json”的 json 文件,所以我从名为“dealerList”的列表中读取对象,然后将其写入 json 文件。
public class Main {
private static List<Dealer> dealerList = new ArrayList<>();
public static void main(String[] args) {
Dealer dearler = new Dealer("Chevrolet");
dearler.addCartoDealer(new Cars("Camaro","Steve",11000));
dearler.addCartoDealer(new Cars("Coverette","Jhon",22000));
Dealer dearler1 = new Dealer("Ford");
dearler1.addCartoDealer(new Cars("Ford1","Jessie",11000));
dearler1.addCartoDealer(new Cars("Ford2","Smith",22000));
dealerList.add(dearler);
dealerList.add(dearler1);
ObjectMapper mapper = new ObjectMapper();
try(FileOutputStream newFile = new FileOutputStream("Dealer.json")){
for(Dealer dealer:dealerList){
mapper.writeValue(newFile,dealer);
}
} catch (IOException e){
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的堆栈:
java.io.IOException: Stream Closed
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:326)
at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2093)
at …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用WIF和AD FS 2.0实现基于声明的身份的Web SSO.现在我有一个现有的ASP.Net应用程序,它将身份验证委托给AD FS 2.0服务器并信任发布的安全令牌.这很好用.
但是,在组织中存在支持SAML 2协议的现有JA-SIG中央认证服务(CAS)服务器.我想用现有的CAS服务替换AD FS 2.0.
在我的理解中,WIF使用WS-Federation,它就像围绕SAML令牌的容器.是否可以使用普通的SAML 2协议及其绑定(重定向或POST)?如果那是不可能的(我猜),第二种选择可能是使用联邦身份并将AD FS 2.0与CAS联合.那可能吗?网上几乎没有关于这方面的信息.
谢谢 :-)
我们使用Windows Identity Foundation(WIF)在.NET Web应用程序中实现了SSO.它很棒.但是,我们必须使用Mono在UNIX系统上运行它.那可能吗?