标签:
? Sonatype Nexus(以下简称Nexus)是Maven仓库管理器,使用Maven,你可以从Maven中央仓库下载所需要的构件,但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,Nexus还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。
? Nexus分为开源版和专业版,其中开源版本基于CPLv3许可证,其特性足以满足大部分Mavan用户的需求。Nexus专业版本是需要付费购买的,除了开原版本的所有特性之外,它主要包含一些企业安全控制,发布流程控制等需要的特性。
? 官网:http://www.sonatype.org/nexus/
? 开源版:http://www.sonatype.org/nexus/go/
? 专业版:http://www.sonatype.com/downloads/products/nexus/nexus-professional-bundle-latest.zip
? Support:https://support.sonatype.com/categories/20112427-Sonatype-Nexus
? 将日志级别设置为TRACE后启动,TRACE日志记录SYSTEM org.sonatype.licensing.trial.internal.DefaultTrialLicenseManager - verifyLicense方法出现NoLicenseInstalledException和LicensingException,定位在license-bundle.jar文件中,异常语句为CustomLicenseContent localCustomLicenseContent = (CustomLicenseContent)new xjx(paramTrialLicenseParam, this.bwp).mif();
? ? ? ?
? 分析license-bundle.jar包结构,可以发现internal子包中均为接口实现类,License结构如下图。
? 1.异常语句若执行成功,返回值主要用于localLicenseKey.populateFromLicenseContent(localCustomLicenseContent);
? 2.接口实现类AbstractLicenseKey中的populateFromLicenseContent方法,调用了License接口中定义的7个setXxx(String)方法和1个子类实现方法parseExtraContent。
? 3.子类DefaultLicenseKey中的parseExtraContent方法对授权信息进行了重校验,根据校验结果setEvaluation,设置自定义属性FeatureSet。
? 分析nexus-licensing-extension.jar包结构,可以发现Feature结构如图,并且存在实现类。
? 于是可以自定义verifyLicense方法返回的License,并根据License接口方法设置license接口中的9个属性。
key.setContactName("zoakerc"); key.setContactCompany("http://my.oschina.net/zoakerc"); key.setContactEmailAddress("zoakerc@gmail.com"); key.setContactTelephone("11011001110"); key.setContactCountry("China"); key.setEvaluation(false); key.setExpirationDate(new Date(8128 - 1900, 1, 1)); key.setEffectiveDate(new Date(2015 - 1900, 1, 1)); FeatureSet fs = new FeatureSet(); fs.addFeature(new NexusProfessionalFeature()); key.setFeatureSet(fs); //CustomLicenseContent localCustomLicenseContent = (CustomLicenseContent) new xjx(paramTrialLicenseParam, this.bwp).mif(); //if (bool) {this.wab.trace("verifyLicense (3) content={}", localCustomLicenseContent);} //key.populateFromLicenseContent(localCustomLicenseContent); //} catch (LicenseContentException localLicenseContentException) { // if (bool) {this.wab.trace("verifyLicense", localLicenseContentException);} // throw itm(key, localLicenseContentException);
清理目录 sonatype-work/nexus/* nexus-professional-2.11.1-01/logs/* nexus-professional-2.11.1-01/tmp/*
查看TRACE日志,发现未出现异常
打开http://localhost:8081/nexus/,使用admin登陆后查看license信息,破解成功。
?
Sonatype Nexus Professional Crack,Maven私服仓库管理
标签:
原文地址:http://my.oschina.net/zoakerc/blog/378269