principal

【ES-Security】什么是 Principal 和 Credentials? 这是Java 安全体系(JAAS)和通用认证模型= “身份”(你是谁) → 通常是用户名,但概念更广= “凭证”(怎么证明) → 通常是密码,但也可能是 Token、证书等这种命名不是随意的,而是遵循了数十年的安全工程规范,让代码更具表达力、可扩展性和互操作性。你已经触达了企业级安全架构的核心抽象!👏。 阅读详情
 群选择天敌的经典寓言  
 
 
上帝把两群羊放在草原上,一群在南,一群在北。上帝还给羊群找了两种天敌,一种是狮子,一种是狼。

   上帝对羊群说:“如果你们要狼,就给一只,任它随意咬你们。如果你们要狮子,就给两头,你们可以在两头狮子中任选一头,还可以随时更换。”南边那群羊想,狮子比狼凶猛得多,还是要狼吧。于是,它们就要了一只狼。北边那群羊想,狮子虽然比狼凶猛得多,但我们有选择权,还是要狮子吧。于是,它们就要了两头狮子。

   那只狼进了南边的羊群后,就开始吃羊。狼身体小,食量也小,一只羊够它吃几天了。这样羊群几天才被追杀一次。北边那群羊挑选了一头狮子,另一头则留在上帝
    那里。这头狮子进入羊群后,也开始吃羊。狮子不但比狼凶猛,而且食量惊人,每天都要吃一只羊。这样羊群就天天都要被追杀,惊恐万状。羊群赶紧请上帝换一头狮子。不料,上帝保管的那头狮子一直没有吃东西,正饥饿难耐,它扑进羊群,比前面那头狮子咬得更疯狂。羊群一天到晚只是逃命,连草都快吃不成了。

   南边的羊群庆幸自己选对了天敌,又嘲笑北边的羊群没有眼光。北边的羊群非常后悔,向上帝大倒苦水,要求更换天敌,改要一只狼。上帝说:“天敌一旦确定,就不能更改,必须世代相随,你们唯一的权利是在两头狮子中选择。”

   北边的羊群只好把两头狮子不断更换。可两头狮子同样凶残,换哪一头都比南边的羊群悲惨得多,它们索性不换了,让一头狮子吃得膘肥体壮,另一头狮子则饿得精瘦。眼看那头瘦狮子快要饿死了,羊群才请上帝换一头。

   这头瘦狮子经过长时间的饥饿后,慢慢悟出了一个道理:自己虽然凶猛异常,一百只羊都不是对手,可是自己的命运是操纵在羊群手里的。羊群随时可以把自己送回上帝那里,让自己饱受饥饿的煎熬,甚至有可能饿死。想通这个道理后,瘦狮子就对羊群特别客气,只吃死羊和病羊,凡是健康的羊它都不吃了。羊群喜出望外,有几只小羊提议干脆固定要瘦狮子,不要那头肥狮子了。一只老公羊提醒说:“瘦狮子是怕我们送它回上帝那里挨饿,才对我们这么好。万一肥狮子饿死了,我们没有了选择的余地,瘦狮子很快就会恢复凶残的本性。”羊群觉得老羊说得有理,为了不让另一头狮子饿死,它们赶紧把它换回来。

   原先膘肥体壮的那头狮子,已经饿得只剩下皮包骨头了,并且也懂得了自己的命运是操纵在羊群手里的道理。为了能在草原上待久一点,它竟百般讨好起羊群来。而那头被送交给上的狮子,则难过得流下了眼泪。

   北边的羊群在经历了重重磨难后,终于过上了自由自在的生活。南边的那群羊的处境却越来越悲惨了,那只狼因为没有竞争对手,羊群又无法更换它,它就胡作非为,每天都要咬死几十只羊,这只狼早已不吃羊肉了,它只喝羊心里的血。它还不准羊叫,哪只叫就立刻咬死哪只。南边的羊群只能在心中哀叹:“早知道这样,还不如要两头狮子。”
OAuth2面试深度解析:从协议原理到Spring Security实战 OAuth2是一个解决授权委托问题的开放标准协议,其核心在于分离资源所有者、客户端、资源服务器和授权服务器的角色,通过颁发访问令牌实现安全的第三方资源访问。协议定义了授权码、客户端凭证等多种授权模式,以适应Web应用、单页应用、服务器间通信等不同场景。在技术实现上,OAuth2常与JWT(JSON Web Token)结合,利用其自包含、可验证的特性作为令牌格式,并通过Spring Security等框架进行高效集成。其技术价值在于为分布式系统和开放平台提供了标准化的、安全的授权解决方案,广泛应用于单点登录 阅读详情

相关推荐

Java项目等保三级合规实战:密码、日志与访问控制核心技术解析

在信息安全领域,身份鉴别、访问控制和安全审计是构建系统安全基石的三大核心支柱。身份鉴别通过密码学技术确保用户身份的真实性,其原理涉及哈希加盐、密钥派生等密码学基础,防止凭证泄露与破解。访问控制基于RBAC(基于角色的访问控制)模型,遵循最小权限原则,通过权限标识与策略引擎实现细粒度的资源管控,确保操作授权精确到功能与数据层面。安全审计则通过日志采集、结构化存储与防篡改机制,构建完整的操作追溯链条,满足事件可重现、行为可追溯的合规要求。这些技术的工程价值在于为系统提供纵深防御能力,在金融、政务、医疗等高合规要

weixin_34216107的博客 471

cas报错(No subject、'principal' cannot be null、PKIX path validation failed等错误)

cas常见错误的原因及其解决方法。cas报错No subject alternative names present、cas报错'principal' cannot be null.cas报错PKIX path validation failed

pucao_cug的专栏 8161

java代码通过ldaps连接AD域,实现写数据到AD域

java代码通过ldaps连接AD域‘’,实现写数据到AD域。

u013930899的博客 2163

weblogic11g 部署CAS 3.5.2 登录异常

在本地tomct一切正常,部到weblogic就报错,看后台日志貌似验证是没问题的,返回页面的时候有误,网上的资料很少, 最后看到这篇文章后受启发,https://www.oschina.net/question/42346_157329   Caused By: java.lang.IllegalArgumentException: 'principal' cannot be null. ...

xuechang2000的专栏 682

CAS SSO改造步骤(2)

设计完数据库之后就开始配置CAS server了。 至于CAS server 和CAS client的配置方法网上有很多种配置方法大致都是可行的个别版本不一样。 笔者这里使用的CAS server是3.5版本,Client是3.1版本。 JDK 7以及Tomcat 7。 配置的过程需要耐心一点。 你需要首先了解SSO工作的基本原理才能在源码的基础上改造,比如源码里面关于Spring文件的

jackieyzw的专栏 7911

principal argument cannot be null

具体报错信息如下: 代码: SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(userInfo, password, getName()); 创建Shiro 存储主体(Subject)身份认证信息发生的报错,于是点进源码发现: ...

qq_40152902的博客 5008

java jndi ldap,使用JNDI进行LDAP身份验证

I'd like to test if a given user and password of a LDAP user are correct.I sorted out that jndi is the library to use.I found this simple class:package myldap;import java.util.Hashtable;import javax.n...

weixin_33603681的博客 1166

How Tomcat works 10: Security类

    1. 概述:     WebApp的资源的访问限制可以通过web.xml文件来支撑。Servlet容器可以通过叫做Authenticator valve类来支持。Authenticator valve会调用context's realms的authenticate方法校验user     2. Realm类     (1)一个Realm通常附属于一个context, 一个container...

blueskypan的博客 178

Spring Security 01 整体架构

在SpringSecurity的架构中,认证跟授权是分开的,无论采用什么样的认证方式,都不会影响授权,这是两个独立的存在 AuthenticationManager 主要实现类为 ProviderManager,在 ProviderManager中管理了众多 AuthenticationProvider 实例。在⼀次完整的

weixin_46058921的博客 491

java中es如何过ldap认证,ldap认证(按照上一篇ldap认证步骤编程)

package com.test.ldap;import java.util.Hashtable;import javax.naming.AuthenticationException;import javax.naming.Context;import javax.naming.NamingEnumeration;import javax.naming.NamingException;impor...

weixin_35318150的博客 237

WebLogic 部署EJB项目报java.lang.ClassNotFoundException: weblogic.security.acl.UserInf

WebLogic 部署EJB项目报java.lang.ClassNotFoundException: weblogic.security.acl.UserInfo错解决 测试EJB项目如下: 实体类Users package com.my.entity; import java.io.Serializable; public class Users i...

my0113的专栏 784

Java ldap服务器的连接和修改密码

终于解放了,昨天需求刚刚上线,感觉真不容易啊,踩得坑太多了。 最近公司有需求,需要提供几个页面供用户可以自行修改和重置密码,还有解锁账号,因为这些之前都是IT那边手动修改,比较浪费人力,所以就有了这么个需求。 于是就在这方面下了一点功夫,把这将近两周的学习心得以及踩得坑分享出来。 要想了解ldap服务器,前提得知道相关的一些基本概念。我参考的是 https://www.cnblogs.com...

xuxiaoqun0_0的博客 7211

LDAP 用户认证 判断输入用户名和密码是否正确

import java.util.Hashtable; import javax.naming.Context; import javax.naming.NamingException; import javax.naming.ldap.InitialLdapContext; import javax.naming.ldap.LdapContext; public class LDAPUtil

Black Monkey 1万+

ldap链接代码

package User; import com.hand.shenzhou.SzLdapConnectInfo; import org.apache.commons.lang.StringUtils; import javax.naming.AuthenticationException; import javax.naming.Context; import javax.naming.Na

liguoxxin2010的专栏 1960

java ldap添加用户名密码_使用用户名和密码的Java LDAP身份验证

小智..45我希望这可以帮助你们中的许多人.您不需要具有CN,DN等的所有用户层次结构.您只需登录通过域\用户和密码即可登录.我的代码工作原理如下:try{// Set up the environment for creating the initial contextHashtable env = new Hashtable();env.put(Context.INITIAL_CONTEXT_...

weixin_34024811的博客 492

java ldap组织架构信息定时同步AD域

java ldap 连接 AD域 同步组织架构流程及ldap接口使用详情

weixin_43164559的博客 4093

java ladp用户认证_java – LDAP:如何使用连接详细信息验证用户身份

我无法使用LDAP对用户进行身份验证.我有以下细节:URL=ldap://10.10.10.10:389LDAP BASE:DC=lab2,DC=insLDAP Bind Account: CN=Ldap Bind,OU=Service Accounts,OU=TECH,DC=lab2,DC=insLDAP Bind Account Pw: secret我可以使用上面的详细信息搜索sAMAccou...

weixin_39950812的博客 293
上一篇: Mr. Huang2
下一篇: joke3
JohnHiggins
博客等级 码龄20年 0粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值