使用Spring LDAP创建AD域用户远程连接未授权问题

求助,创建AD域账户后,另一个服务需要连接该域。不适合做管理员授权,因为这个对用户来说完全是透明的。
AD中有没有这个属性可以去控制远程连接授权的。

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
使用Spring Ldap创建AD域用户时密码初始化问题
Spring Ldap创建AD域用户 证书正确,密码策略正确 问题:创建用户后,设置的密码不生效,总会以空密码登录,然后再去设置密码。 当创建用户时userAcountControl设置成多少才能把密码成功设置进域账户中
java通过ldap修改ad域用户密码问题
java通过ldap修改ad域用户密码问题java通过ldap修改ad域用户密码问题java通过ldap修改ad域用户密码问题java通过ldap修改ad域用户密码问题java通过ldap修改ad域用户密码问题java通过ldap修改ad域用户密码问题java通过ldap修改ad域用户密码问题
windows server 2008 做AD域 和 ldap同步用户
windows AD域 我已经搭建好了,这个google上面很多方法搭建,可是就是很少做到 和LDAP同步用户访问。出现问题,要如何配置slapd.conf 求非常详细的帮助文档,或者指点。急 这里我之前用samba来同步AD域 是可以访问的,可以要做到LDAP用户也可以。 解决方法 ,想了好几天 最近一直在研究利用openldap代理windows AD的问题,初次接触ldap,希望大侠能给点意见。 环境: 一台CentOS 6.5的linux系统 安装OpenLDAP 2.3.43;另一台Windows 2008R2是做AD服务器 通过对sladp.conf进行配置,已经成功实现代理AD的问题,如下所示: database ldap #定义LDAP代理服务器的suffix suffix "dc=ic,dc=com" #定义AD域服务器地址 uri "ldap://172.16.168.238/" 现在碰到匿名访问的问题,因为windows 2008 AD默认是禁止匿名访问的,当然我们可以打开对AD的匿名访问,但不是我们希望得到的。
Spring LDAP在链接AD域的时候报Connection refused: connect]]
我在用Spring Ldap链接AD域的时候报PartialResultException [Root exception is (我尝试着随便写个密码,链接的时候会提示密码错误) (用java自带的可以链接成功) 我从看文档说可以抑制,结果抑制了还是不行,有没有朋友知道这是为什么?求告知 这是我xml的配置文件 ![图片说明](https://img-ask.csdn.net/upload/201709/12/1505207141_514391.jpg) ![图片说明](https://img-ask.csdn.net/upload/201709/12/1505207187_983442.jpg) ![图片说明](https://img-ask.csdn.net/upload/201709/12/1505207196_902440.jpg) 这是报的异常 org.springframework.ldap.PartialResultException: nested exception is javax.naming.PartialResultException [Root exception is javax.naming.CommunicationException: wzax.com:389 [Root exception is java.net.ConnectException: Connection refused: connect]] at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:216) at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:385) at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:309) at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:642) at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:578) at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:1617) at com.wzax.springldap.MyPersonRepoImpl.getPassword(MyPersonRepoImpl.java:316) at com.wzax.springldap.PersonRepoTest.testPassword(PersonRepoTest.java:20) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) Caused by: javax.naming.PartialResultException [Root exception is javax.naming.CommunicationException: wzax.com:389 [Root exception is java.net.ConnectException: Connection refused: connect]] at com.sun.jndi.ldap.AbstractLdapNamingEnumeration.hasMoreImpl(AbstractLdapNamingEnumeration.java:237) at com.sun.jndi.ldap.AbstractLdapNamingEnumeration.hasMore(AbstractLdapNamingEnumeration.java:189) at org.springframework.ldap.core.LdapTemplate.search(LdapTemplate.java:365) ... 35 more Caused by: javax.naming.CommunicationException: wzax.com:389 [Root exception is java.net.ConnectException: Connection refused: connect] at com.sun.jndi.ldap.LdapReferralContext.<init>(LdapReferralContext.java:96) at com.sun.jndi.ldap.LdapReferralException.getReferralContext(LdapReferralException.java:150) at com.sun.jndi.ldap.AbstractLdapNamingEnumeration.hasMoreReferrals(AbstractLdapNamingEnumeration.java:325) at com.sun.jndi.ldap.AbstractLdapNamingEnumeration.hasMoreImpl(AbstractLdapNamingEnumeration.java:227) ... 37 more Caused by: java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.<init>(Socket.java:434) at java.net.Socket.<init>(Socket.java:211) at com.sun.jndi.ldap.Connection.createSocket(Connection.java:363) at com.sun.jndi.ldap.Connection.<init>(Connection.java:203) at com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:137) at com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1614) at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2746) at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:319) at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:192) at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:151) at com.sun.jndi.url.ldap.ldapURLContextFactory.getObjectInstance(ldapURLContextFactory.java:52) at javax.naming.spi.NamingManager.getURLObject(NamingManager.java:601) at javax.naming.spi.NamingManager.processURL(NamingManager.java:381) at javax.naming.spi.NamingManager.processURLAddrs(NamingManager.java:361) at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:333) at com.sun.jndi.ldap.LdapReferralContext.<init>(LdapReferralContext.java:119) ... 40 more
java ad 域 ldap怎么获取用户组
java ad域 ldap objectclass=organizationalUnit和objectclass=group 有啥区别
Java ldap修改AD属性报错
用Java ldap做一个域用户某一个属性信息修改功能 LdapContext ctx = xxx; 已经用域管理用户连接上了,没问题。 ModificationItem modificationItem[] =new ModificationItem[1]; modificationItem[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE,new BasicAttribute("employeeID","123456")); //employeeID 是AD里面的一个属性 ctx.modifyAttributes("uid=robert,cn=users,DC=SMNPC,DC=COM",modificationItem);//就是执行 **ctx.modifyAttributes 这句报错** , 下面是报错的异常信息 Exception in thread "main" javax.naming.NamingException: [LDAP: error code 1 - 000004DC: LdapErr: DSID-0C090B22, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1db1 找了半天也不知道这个异常是什么原因造成的,求大家告知一下,顺便有Java ldap修改AD属性值的例子也可以分享一下给我呗
java ldap操作AD域实现修改密码
用java操作ldap实现修改密码太难了!要安装很多的证书,把我的思路搞晕了, 有没有那个大神写过修改密码有修改密码的demo给我参考下啊?
JAVA操作AD域 使用SSL连接出错 no subject alternative names matching IP address ?
**连接出错** javax.naming.CommunicationException: simple bind failed: 192.168.226.131:636 [Root exception is javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names matching IP address 192.168.226.131 found] ``` public void certinit() { String keystore = "D:\\Java\\jdk1.8.0_211\\jre\\lib\\security\\cacerts"; System.setProperty("javax.net.ssl.trustStore", keystore); Properties env = new Properties(); String adminName = "cn=Administrator,cn=Users,dc=hct,dc=com"; String adminPassword = "Admin123456";// password String ldapURL = "ldap://192.168.226.131:636";// ip:port env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.SECURITY_AUTHENTICATION, "simple");// LDAP访问安全级别:"none","simple","strong" env.put(Context.SECURITY_PRINCIPAL, adminName); env.put(Context.SECURITY_CREDENTIALS, adminPassword); env.put(Context.PROVIDER_URL, ldapURL); env.put(Context.SECURITY_PROTOCOL, "ssl"); try { dc = new InitialLdapContext(env, null); System.out.println("AD域ssl身份认证成功"); } catch (Exception e) { System.out.println("AD域ssl身份认证失败"); e.printStackTrace(); } } ```
java ad域 ldap 怎么获取用户和用户组
获取数据的时候有个属性searchFilter, ``` String searchFilter = "objectclass=*” ``` 这个是获取所有 ``` String searchFilter = "objectclass=user” ``` 这个是获取用户,我想问获取用户和用户组怎么写,不要 "objectclass=*”
spring security LDAP 验证通过后 权限管理问题
代码在公司里原谅我不能贴出来。 问题是这样的 公司的员工资料全部储存在LDAP中。 然后用SPRING SECURITY 一个拦截器 是通过LDAP来实现的。 所以现在的话 登陆验证是通过LDAP 验证的 已经通过了 现在只有一个拦截器。 需求: 现在我需要一个权限系统(不用SHIRO做)。 自己在数据库里写了5个表 USER ROLE PERMISSION 以及两个链接表 我看到 INCEPTER 写的URL 只有 ROLE—USER 可以访问, 但死活找不到到底在哪里给了 登陆用户ROLE USER的权限到。本来想着通过在赋予ROLE USER权限那里 通过登陆名从数据库查询到的权限 然后替换ROLE USER 。 今天 弄了半天切入点是个错的 就不知道怎么弄了 前提是用spring security实现 望千人赐把伞。
java通过ldap新增、修改、删除windowsAD域用户
Hashtable env = new Hashtable(); String adminName = "testadmin@aa.com"; String adminPassword = "sdfsd@1!"; String userName = "CN=新用户,OU=用户(测试),DC=aa,DC=com"; env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put(Context.SECURITY_PRINCIPAL, adminName); env.put(Context.SECURITY_CREDENTIALS, adminPassword); env.put(Context.PROVIDER_URL, "ldap://192.168.10.10:389"); try { LdapContext ctx = new InitialLdapContext(env, null); Attributes attrs = new BasicAttributes(true); attrs.put("objectClass", "user"); attrs.put("samAccountName", "xinyonghu"); attrs.put("cn", "xinyonghu"); attrs.put("displayName", "新用户"); attrs.put("userPrincipalName", "xinyonghu@aa.com"); int UF_ACCOUNTDISABLE = 0x0002; int UF_PASSWD_NOTREQD = 0x0020; int UF_PASSWD_CANT_CHANGE = 0x0040; int UF_NORMAL_ACCOUNT = 0x0200; int UF_DONT_EXPIRE_PASSWD = 0x10000; int UF_PASSWORD_EXPIRED = 0x800000; attrs.put( "userAccountControl", Integer.toString(UF_NORMAL_ACCOUNT + UF_PASSWD_NOTREQD + UF_PASSWORD_EXPIRED + UF_ACCOUNTDISABLE)); Context result = ctx.createSubcontext(userName, attrs); 为什么我创建的用户是未启用的 ![图片说明](https://img-ask.csdn.net/upload/201511/19/1447923871_430890.png) 如果才能创建已经开启的用户。如何给用户设置密码让新创建的用户能够登陆到ad域里?谢谢
ad 域验证报LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A9错误
public String checkLogin(String userName,String password) { String host = "10.130.119.101"; // AD服务器IP String port = "389"; // 端口 // String domain = "@domain.com.cn"; //邮箱的后缀名 String user="test001@zaucc.com";//这里有两种格式,domain\User或邮箱的后缀名,建议用domain\User这种格式 String url = new String("ldap://" + host + ":" + port); //String user = userName.indexOf(domain) > 0 ? userName : userName + domain; Hashtable env = new Hashtable(); DirContext ctx; env.put(Context.SECURITY_AUTHENTICATION, "simple");//一种模式,不用管,就这么写就可以了 env.put(Context.SECURITY_PRINCIPAL,"CN=zaucc.com,OU=ZALH_OU,DC=其他");//这 env.put(Context.SECURITY_CREDENTIALS, "abc@1220"); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, url); try { System.out.println("authenticating"); ctx = new InitialDirContext(env); System.out.println("authenticated"); ctx.close(); return userName; //验证成功返回name } catch (NamingException err) { return err.getMessage();//验证失败返回空 } } 验证时一直报 LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1 错误,求大神指点
pam_ldap用户认证过程中如何释放TCP连接
服务器采用pam_ldap认证 体系,采用open_ldap2.4.x,认证机制是通过前端调用pam认证的do_pam_authenication()函数【进行用户身份验证,普通用户和ldap用户都会进入这个函数,这个函数没有ldap用户操作的句柄LDAP* ld】,*然后函数直接跳转到 ldap的认证函数ldap_sm_authenication【用于ldap用户认证,里面定义了 LDAP* ld*主要进行ldap用户的认证】,在其中调用了Openldap的ldap_simple_bind_s()进行服务器绑定,ldap_simple_bind_s()调用ldap_initialize()进行和ldap服务器建立连接,然后进行用户身份认证,认证完成后返回ldap_success【0】表示成功认证,设置之后采用ldap用户可以正常访问,但是用户登录登出之后会多建立一个登录页面网址到ldap服务器之间的一个tcp连接,这个连接不会超时,直到重启登录认证的服务器。 我配置过了ldap登录认证的超时方式,在ldap_initialize()之后ldap_simple_bind_s()之前进行了超时机制设置:ldap_set_option(ld, LDAP_OPT_TIMELIMIT,&timeout),ldap_set_option(ld, LDAP_OPT_NETWORK_TIMEOUT,&timeout), 最后发现在pam_sm_authenication()函数中调用ldap_simple_bind_s()之后return之前没有进行ldap_unbind(ld),由于pam_sm_authenication()在调用之后就返回了pam认证,也就是说,pam_sm_authenication() return之后函数执行过程就不会再有LDAP *ld 这种类型,我在**pam_sm_authenication() return之前进行了ldap_unbind(),结果发现ldap登录出现问题,提示网络或服务器异常,代码日志发现程序执行停在了我设置ldap_unbind()的地方。** 我想知道pam_ldap认证过程中当用户名、密码认证成功之后他的LDAP *ld 句柄什么时候释放,ldap_unbind()什么时候调用(如果必须要调用的话),还有最重要的一点:LDAP服务器和登录网站建立的TCP连接什么时候应该释放掉
Ldap登陆问题数据包未发送
夸网段访问ldap登陆,会在早中晚几个阶段出现项目发送请求,但是ldap未发出包,然后登陆卡壳,几分钟后连接超时timeout,重新发送登陆便可以登陆, 问题应该就是在第一次访问ldap的时候回出现,早上,中午休息结束,晚上快下班.
用AD的用户登录CAS 4.0,按照官网配置后,登录失败。求助CAS大神!!!!!!!!
环境: cas-server-support-ldap-4.0.0.jar spring-ldap-core-2.0.2.RELEASE.jar ldaptive-1.0.5.jar 描述:在云上两台机器:Centos 6 作为cas-server;Win 2012 R2作为AD域控制器(imcloud.com),创建了一个userOU,里面的用户作为CAS的用户登录(ldap.baseDn="ou=userOU,dc=imcloud,dc=com").按照官网(https://apereo.github.io/cas/4.0.x/installation/LDAP-Authentication.html)principalIdAttribute=sAMAccount的配置,更改了deployerConfigContext.xml与cas.properties 文件以后,用AD用户的用户名密码登录,显示“invalid credentials”。后来同事尝试用HTTP协议,反倒成功了。我的证书以及AD的设置应该是没有问题的,不知道CAS哪里配错了。
java获取AD域用户信息 获取的信息只遍历出了1000条
java获取AD域用户信息 ,获取的信息只遍历出了1000条,想知道实在哪里被限制了吗,正常应该大于1000条 ``` SearchControls searchCtls = new SearchControls(); // Specify the search scope searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE); // specify the LDAP search filter String searchFilter = "objectclass=*"; // Specify the Base for the search 搜索域节点 String searchBase = "DC=wer,DC=com"; int totalResults = 0; String returnedAtts[] = { "objectGUID", "name", "userPrincipalName", "DisplayName", "Mail", "telephoneNumber", "FacsimileTelephoneNumber", "Title", "Department", "userAccountControl" }; // 定制返回属性 searchCtls.setReturningAttributes(returnedAtts); // 设置返回属性集 ArrayList<ArrayList<HashMap<String,String>>> dataList=new ArrayList<ArrayList<HashMap<String,String>>>(); try { NamingEnumeration answer = dc.search(searchBase, searchFilter,searchCtls); ArrayList<HashMap<String,String>> grouplist=new ArrayList<HashMap<String,String>>(); ArrayList<HashMap<String,String>> userlist=new ArrayList<HashMap<String,String>>(); if (answer == null || answer.equals(null)) { System.out.println("answer is null"); } else { System.out.println("answer not null"); } int a= 0; while (answer.hasMoreElements()) { a++; SearchResult sr = (SearchResult) answer.next(); System.out.println(sr.getName()); if(sr.getName().contains("OU=qwer")){//只检索带qwer的 if(sr.getName().indexOf("OU=") < 0) { continue; } // System.out.println("getname=" + sr.getName()); if(!sr.getName().contains("CN=")){//代表是用户组 //遍历节点及属性 grouplist.add(GroupTag(sr)); }else{//是用户 //遍历节点及属性 userlist.add(UserTag(sr)); } } } System.out.println("一共循环了 :"+a +"次"); `` 最后输出结果 一共循环了1000次,为什么是1000次呢?那个地方限制住了?求大神帮忙解答
如何使用tomcat 配置连接ldap
你好,目前在做一个手机app,想通过公司内部域账号认证登录,公司其他app一般是通过weblogic搭建服务,目前这个app需要通过tomcat搭建,tomcat仅实现域账号认证的处理,从来没有做过这方面,不知道怎么下手,能否指导一下,能附带一个demo最好了,谢谢。 目前仅知道可以通过ldap来实现,公司的域账号是现成的,已经知道地址为:ldap://10.20.13.23:389,想知道tomcat需要怎么配置啊?谢谢。 我在网上找了一个资料【http://blog.csdn.net/davidgjm/article/details/2078826】,但是也搞不定,按其配置server.xml,配置之后连tomcat启动都报错了。谢谢。 注:本人新手,最好有步骤,谢谢。
域控上添加 SPN问题 ,域控与客户服务器见得LDAP需要SPN认证。
各位专家, 我这儿有一个问题提就是我的服务器需要通过LDAP/olddc.domain.local来认证获取账号认证信息,但是我现在的olddc已经下线而且需要通过认证的服务器也无法更改LDAP/olddc.domain.local这个地址。所以我在新的DC上添加了一条SPN的消息以让我的服务器可以通过认证。通过命令setspn -s ldap/olddc.domain.local newdc。添加这个记录,但是这条SPN记录会在10分钟自动被新的域控给删除,各位专家谁能帮忙分析一下呢?非常感谢
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
python学习方法总结(内附python全套学习资料)
不要再问我python好不好学了 我之前做过半年少儿编程老师,一个小学四年级的小孩子都能在我的教学下独立完成python游戏,植物大战僵尸简单版,如果要肯花时间,接下来的网络开发也不是问题,人工智能也可以学个调包也没啥问题。。。。。所以python真的是想学就一定能学会的!!!! --------------------华丽的分割线-------------------------------- ...
兼职程序员一般可以从什么平台接私活?
这个问题我进行了系统性的总结,以下将进行言简意赅的说明和渠道提供,希望对各位小猿/小媛们有帮助~ 根据我们的经验,程序员兼职主要分为三种:兼职职位众包、项目整包和自由职业者驻场。 所谓的兼职职位众包,指的是需求方这边有自有工程师配合,只需要某个职位的工程师开发某个模块的项目。比如开发一个 app,后端接口有人开发,但是缺少 iOS 前端开发工程师,那么他们就会发布一个职位招聘前端,来配合公司一...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
JAVA 基础练习题
第一题 1.查看以下代码,并写出结果 public class Test01 { public static void main(String[] args) { int i1 = 5; boolean result = (i1++ &gt; 5) &amp;&amp; (++i1 &gt; 4); System.out.println(result); Sy...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
C++知识点 —— 整合(持续更新中)
本文记录自己在自学C++过程中不同于C的一些知识点,适合于有C语言基础的同学阅读。如果纰漏,欢迎回复指正 目录 第一部分 基础知识 一、HelloWorld与命名空间 二、引用和引用参数 2.1引用的定义 2.2 将引用用作函数参数 2.3 将引用用于类对象 2.4 引用和继承 2.5 何时使用引用参数 2.6 引用和指针的区别 三、内联函数 四、默认参数的...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
Python实例大全(基于Python3.7.4)
博客说明: 这是自己写的有关python语言的一篇综合博客。 只作为知识广度和编程技巧学习,不过于追究学习深度,点到即止、会用即可。 主要是基础语句,如三大控制语句(顺序、分支、循环),随机数的生成,数据类型的区分和使用; 也会涉及常用的算法和数据结构,以及面试题相关经验; 主体部分是针对python的数据挖掘和数据分析,主要先攻爬虫方向:正则表达式匹配,常用数据清洗办法,scrapy及其他爬虫框架,数据存储方式及其实现; 最后还会粗略涉及人工智能领域,玩转大数据与云计算、进行相关的预测和分析。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
机械转行java自学经历,零基础学java,血泪总结的干货
机械转行java自学经历,零基础学java,血泪总结的干货 据说,再恩爱的夫妻,一生中都有100次想离婚的念头和50次想掐死对方的冲动。 求职路上亦是如此,打开这篇文章,相信你也有转行的想法。和身边的朋友聊过,入职后的他们,或多或少对现在的职位都有些不满,都有过转行的冲动。 可他们只是想,而我真的这样做了。 下面就介绍下我转行的血泪史。 我为什么要转行 高中复读了一年,考了个双非院校的机械。当时...
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
【Linux系统编程】Linux信号列表
00. 目录 文章目录00. 目录01. Linux信号编号02. 信号简介03. 特殊信号04. 附录 01. Linux信号编号 在 Linux 下,每个信号的名字都以字符 SIG 开头,每个信号和一个数字编码相对应,在头文件 signum.h 中,这些信号都被定义为正整数。信号名定义路径:/usr/include/i386-linux-gnu/bits/signum.h 要想查看这些信号和...
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
借助AI力量,谷歌解开生命奥秘?
全文共4484字,预计学习时长8分钟 Paweł Czerwiński发布在 Unsplash上的原图 假如疾病不复存在会发生什么?如果我们能像大自然一样迅速获取能量又会发生什么?要是我们能够在极短时间内循环塑料、废油、或其它的一些物质呢?如果人类能够解开生命的奥秘,那么以上这些想象将在未来成为现实。人工智能企业DeepMind的数据科学分析师日前在此领域有了重大发现。以下为具体内容:...
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问