This is an interesting change, and essentially enforces a de-facto package naming scheme for Clojure. I don't see this as a bad thing, though.
Have you considered automatically validating domain name ownership by supplying a challenge token and then looking for it at a well-known location on the domain? On Mon, 1 Mar 2021, at 1:46 PM, Toby Crawley wrote: > Howdy folks! We have two separate changes coming for the Clojars system that > you need to be aware of. > > First, the tl;dr: > > - After 2021-04-15, versions of Java older than 7u25 will no longer be able > to access the Clojars repository > - After 2021-04-18, a Clojars group name must have verified ownership before > a new library can be deployed to it > > Now, the details: > > # Dropping support for old Java versions > > The repository itself is hosted behind a Fastly CDN, and Fastly is forcing > all accounts to switch to SNI[1] for TLS connections. Clojars will be > migrated on or after 2021-04-15, so this will cause requests from older Java > clients to fail (SNI support was added to Java in version 7u25 in 2011). So > you will need to upgrade if you are still using an old Java for building or > for running an artifact proxy. This change only affects connections to the > repo.clojars.org hostname (and clojars.org/repo/, since it redirects to > repo.clojars.org). > > [1]: https://en.wikipedia.org/wiki/Server_Name_Indication > > # Requiring verified group names > > In light of the recent announcement[2] of a method to inject libraries into > internal builds by shadowing internal names (aka 'Dependency Confusion'), we > have decided to take steps to make Clojars more secure. Clojars will soon > require that all **new** libraries have a verified group name, and that group > name needs to be reverse-domain-based. This will help protect against Clojars > being used in the following attack vectors: > > - shadowing a company-internal library name, causing the version published on > Clojars to be used instead in some situations > - shadowing a library name that is also published to Maven Central or another > public repository (Clojars already has checks in place to prevent shadowing > anything on Maven Central, but they are brittle and could be removed once > verification is in place) > - "typo-squatting" - a library that is named very similarly to one published > elsewhere; designed to capture cases where a developer makes a typo in the > dependency specification > > The schedule for releasing this change should allow enough time for us to get > the Clojars changes in place and to communicate the changes throughout the > community: > > - Today: > - net.clojars.<clojars-username>/org.clojars.<clojars-username> groups are > already verified for all existing and future users (see below for details) > - the Clojars admins can start processing any manual verification requests > (see below for details) > - **creating new non-verified groups and creating new libraries in > non-verified groups is still allowed** > - 2021-03-07: > - com.github.<github-username> and io.github.<github-username> groups will > be verified automatically when when you log in via GitHub > - 2021-03-21: > - login via GitLab will be released > - com.gitlab.<gitlab-username> groups verified automatically when you login > via GitLab > - 2021-04-18: > - **creating new non-verified groups and creating new libraries in > non-verified groups will be disabled** > > [2]: https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610 > > ## FAQ > > ### What is a reverse-domain-based group name? > > A reverse-domain-based group name is one that when reversed resolves to a > DNS-resolvable domain, or a domain and a well known identifier within that > domain. For example, com.github.clojars maps to https://github.com/clojars/, > and org.clojars maps to https://clojars.org. This namespacing mechanism has a > long history in Java for package names and libraries released to Maven > Central[3]. Clojars has historically been less stringent, and using > verifiable group names brings us closer to the standards followed by much of > the broader JVM community. > > [3]: > https://blog.sonatype.com/why-namespacing-matters-in-public-open-source-repositories > > ### Do I have to have my own domain name to publish to Clojars? > > No, you have quite a few automatically verified options if you don't have a > domain name, don't want to use your own, or don't want to go through the > manual verification process: > > - org.clojars.<clojars-username>: this group exists for each Clojars user, > and is automatically verified. These groups have existed since the early days > of Clojars, and have typically been used as sandboxes/for non-canonical > forks. We recommend using net.clojars.<clojars-username> for "official" > releases instead. > - net.clojars.<clojars-username>: this group exists for each Clojars user, > and is automatically verified > - com.github.<github-username> / io.github.<github-username>: both of these > groups will be verified automatically when you login via GitHub after > 2021-03-07. See below if you want to verify > (com|io).github.<github-organization-name>. > - com.gitlab.<gitlab-username>: this group will be verified automatically > when you login via GitLab after 2021-03-21. See below if you want to verify > com.gitlab.<gitlab-organization-name>. > > ### How do I verify a group name? > > If you aren't using one of the auto-verified group names above, you will need > to open a verification request[4] with the Clojars staff. > > If the group name matches a GitHub/GitLab organization name > (com.github.<org>/com.gitlab.<org>/io.github.<org>), then we'll ask you to > create a public repository with a specific name under that organization to > prove ownership. > > If the group name is some other reverse-domain-based name, we'll ask you to > create a TXT DNS record under that domain (or some alternate method) to prove > ownership. > > If the group name isn't reverse-domain-based, it won't be verified. > > If this is a new group (no libraries have yet been released to it), you will > need to verify it before deploying the library after 2021-04-18. > > [4]: > https://github.com/clojars/administration/issues/new?template=group_verification.md > > ### How does this impact existing libraries published to Clojars? > > This won't have an impact on releasing new versions of existing libraries; > the group does not need to be verified for new versions. These changes only > impact new libraries. > > ### Do I have to rename my existing libraries that I publish to Clojars? > > Nope - existing libraries can continue to release new versions under their > existing names and be referred to by their existing names. > > ### Does this impact how Clojure namespaces have to be named within libraries? > > Not at all - there is no relationship between the name of a library and the > namespaces it provides (but zero correspondence between them might be > confusing). > > ### Can I verify an existing group name? > > Yes, as long as the group name is reverse-domain-based and you are a member > of the group. Otherwise, no. > > ### What does this mean for single-named libraries? > > Libraries with a "single name" (like hiccup, cheshire, clj-http) are > implemented under the hood as a library where the group and artifact name are > the same (hiccup/hiccup, cheshire/cheshire, etc). Existing libraries named in > that fashion will continue to be releasable, but no new ones will be allowed > to be created (that's not 100% accurate - you _could_ verify a > domain-based-group, then use the group name as the artifact name as well, but > that seems unlikely). > > ### I never publish libraries to Clojars, only use them. How does this impact > me? > > This should have no impact on you other than the improved security. > > ### How can I help? > > Great question! You can help by: > > - bringing any community documentation that needs to be updated to our > attention, or updating it yourself > - sharing this information throughout the community. The bulk of this message > is also available on the Clojars wiki at > https://github.com/clojars/clojars-web/wiki/Verified-Group-Names > > ## Implementation > > The plan to implement these changes is being tracked in > https://github.com/clojars/clojars-web/projects/1 if you are interested > following along. > > ## Discussion/feedback > > If you have questions or concerns that aren't answered here, feel free to > comment on the discussion at > https://github.com/clojars/administration/discussions/2. > > # Sponsors > > Thanks for reading this far! I want to take this opportunity to thank the > sponsors that make Clojars possible. > > - Clojurists Together (https://www.clojuriststogether.org/) (and all of its > members): Clojurists Together funds my maintenance work on Clojars > - Clubhouse Software (https://clubhouse.io/): Clubhouse covers our hosting > costs, and is flexible enough as my employer to allow me to address any > Clojars emergencies > - Fastly (http://fastly.com/): Fastly provides the CDN that fronts > `repo.clojars.org` at no cost > - DNSimple (https://dnsimple.link/resolving-clojars): DNSimple provides free > DNS services for Clojars > - Deps (https://www.deps.co/): Deps covers Daniel Compton's time for Clojars > Administration > - Both Pingometer (https://pingometer.com/) and Sentry (http://sentry.io/) > provide free service for monitoring > - Statuspage (https://www.statuspage.io/) provides free hosting for > http://status.clojars.org/ > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/clojure/4148ed43-a978-4c7f-b76f-0dc14ff7a581%40www.fastmail.com. > -- James Reeves booleanknot.com -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/clojure/f012e559-ebe8-41fa-886d-b0b4ea173ec6%40www.fastmail.com.