当前位置: 首页 > news >正文

做蛋糕有哪些网站洛可可设计集团

做蛋糕有哪些网站,洛可可设计集团,路由器端口转发做网站访问量,个人博客网站建设spring social几周前#xff0c;我写了一篇文章#xff0c;展示了我认为可以使用Spring Social编写的最简单的应用程序。 该应用程序读取并显示了Twitter用户的公共数据#xff0c;并被编写为Spring Social和社交编码领域的介绍。 但是#xff0c;让您的应用程序显示用户的… spring social 几周前我写了一篇文章展示了我认为可以使用Spring Social编写的最简单的应用程序。 该应用程序读取并显示了Twitter用户的公共数据并被编写为Spring Social和社交编码领域的介绍。 但是让您的应用程序显示用户的公共数据只是故事的一半而且在大多数情况下您将需要显示用户的私有数据。 在本博客中我将介绍您需要在应用程序的一两个页面上显示用户的Facebook或其他软件即服务SaaS提供程序数据的情况。 这里的想法是尝试演示最小的和最简单的操作您可以将Spring Social添加到需要用户登录Facebook或其他SaaS提供商的应用程序中。 创建应用 要创建该应用程序第一步是使用SpringSource Toolkit仪表板的模板部分创建一个基本的Spring MVC项目。 这提供了一个Web应用程序可帮助您入门。 下一步是通过添加以下依赖项来设置pom.xml dependencygroupIdorg.springframework.security/groupIdartifactIdspring-security-crypto/artifactIdversion${org.springframework.security.crypto-version}/version /dependency!-- Spring Social -- dependencygroupIdorg.springframework.social/groupIdartifactIdspring-social-core/artifactIdversion${spring-social.version}/version /dependency dependencygroupIdorg.springframework.social/groupIdartifactIdspring-social-web/artifactIdversion${spring-social.version}/version /dependency!-- Facebook API -- dependencygroupIdorg.springframework.social/groupIdartifactIdspring-social-facebook/artifactIdversion${org.springframework.social-facebook-version}/version /dependency!-- JdbcUserConfiguration -- dependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion${org.springframework-version}/version /dependency dependencygroupIdcom.h2database/groupIdartifactIdh2/artifactIdversion1.3.159/version /dependency!-- CGLIB, only required and used for Configuration usage: could be removed in future release of Spring -- dependencygroupIdcglib/groupIdartifactIdcglib-nodep/artifactIdversion2.2/version /dependency …显然您还需要在文件的lt; properties /部分中添加以下内容 spring-social.version1.0.2.RELEASE/spring-social.version org.springframework.social-facebook-version1.0.1.RELEASE/org.springframework.social-facebook-version org.springframework.security.crypto-version3.1.0.RELEASE/org.springframework.security.crypto-version 您会注意到我为spring-security-crypto添加了一个特定的pom条目这是因为我正在使用Spring 3.0.6。 在Spring 3.1.x中它已成为核心库的一部分。 唯一要注意的一点是还依赖于spring-jdbc和h2 。 这是因为Spring的UserConnectionRepository默认实现 JdbcUsersConnectionRepository使用它们因此即使此应用程序不对数据库持久化任何东西据我所知它们也是必需的。 班级 社交编码功能包括四个类其中一个是我从Keith Donald的Spring Social Quick Start Sample代码中摘录的 FacebookPostsController 社会背景 Facebook配置 UserCookieGenerator FacebookPostsController是应用程序的业务端负责获取用户的Facebook数据并将其推入模型中以供显示。 Controllerpublic class FacebookPostsController {private static final Logger logger LoggerFactory.getLogger(FacebookPostsController.class);private final SocialContext socialContext;Autowiredpublic FacebookPostsController(SocialContext socialContext) {this.socialContext socialContext;}RequestMapping(value posts, method RequestMethod.GET)public String showPostsForUser(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {String nextView;if (socialContext.isSignedIn(request, response)) {ListPost posts retrievePosts();model.addAttribute(posts, posts);nextView show-posts;} else {nextView signin;}return nextView;}private ListPost retrievePosts() {Facebook facebook socialContext.getFacebook();FeedOperations feedOps facebook.feedOperations();ListPost posts feedOps.getHomeFeed();logger.info(Retrieved posts.size() posts from the Facebook authenticated user);return posts;}} 如您所见从高级的角度来看我们要实现的目标的逻辑非常简单 IF user is signed in THEN read Facebook data, display Facebook data ELSE ask user to sign in when user has signed in, go back to the beginning END IF FacebookPostsController将处理登录逻辑的任务委托给SocialContext类。 您可能会猜到我从Spring真正有用的ApplicationContext中得到了此类的想法。 这里的想法是有一个类负责将您的应用程序粘贴到Spring Social。 public class SocialContext implements ConnectionSignUp, SignInAdapter {/*** Use a random number generator to generate IDs to avoid cookie clashes* between server restarts*/private static Random rand;/*** Manage cookies - Use cookies to remember state between calls to the* server(s)*/private final UserCookieGenerator userCookieGenerator;/** Store the user id between calls to the server */private static final ThreadLocalString currentUser new ThreadLocalString();private final UsersConnectionRepository connectionRepository;private final Facebook facebook;public SocialContext(UsersConnectionRepository connectionRepository, UserCookieGenerator userCookieGenerator,Facebook facebook) {this.connectionRepository connectionRepository;this.userCookieGenerator userCookieGenerator;this.facebook facebook;rand new Random(Calendar.getInstance().getTimeInMillis());}Overridepublic String signIn(String userId, Connection? connection, NativeWebRequest request) {userCookieGenerator.addCookie(userId, request.getNativeResponse(HttpServletResponse.class));return null;}Overridepublic String execute(Connection? connection) {return Long.toString(rand.nextLong());}public boolean isSignedIn(HttpServletRequest request, HttpServletResponse response) {boolean retVal false;String userId userCookieGenerator.readCookieValue(request);if (isValidId(userId)) {if (isConnectedFacebookUser(userId)) {retVal true;} else {userCookieGenerator.removeCookie(response);}}currentUser.set(userId);return retVal;}private boolean isValidId(String id) {return isNotNull(id) (id.length() 0);}private boolean isNotNull(Object obj) {return obj ! null;}private boolean isConnectedFacebookUser(String userId) {ConnectionRepository connectionRepo connectionRepository.createConnectionRepository(userId);ConnectionFacebook facebookConnection connectionRepo.findPrimaryConnection(Facebook.class);return facebookConnection ! null;}public String getUserId() {return currentUser.get();}public Facebook getFacebook() {return facebook;}} SocialContext实现Spring Social的ConnectionSignUp和SignInAdapter接口。 它包含三个方法isSignedIn signIn execute 。 FacebookSignsController类调用isSignedIn来实现上述逻辑而Spring Social调用signIn和execute 。 从我以前的博客中您会记住OAuth需要在浏览器您的应用程序和SaaS提供程序之间进行多次旅行。 在进行这些操作时应用程序需要保存多个OAuth参数的状态例如client_idredirect_uri和其他参数。 通过将OAuth对话的状态映射到您的Webapp所控制的变量Spring Social将所有这些复杂性从应用程序中隐藏起来。 这是userId ; 但是不要以为它是用户名因为它从未被用户看到它只是一个唯一标识符该标识符将许多HTTP请求链接到Spring Social核心中的SaaS提供程序连接例如Facebook。 由于其简单性我遵循了Keith Donald的想法即使用cookie在浏览器和服务器之间传递用户ID来保持状态。 我还从Spring Social快速入门中借用了他的UserCookieGenerator类来帮助我。 isSignedIn...方法使用UserCookieGenerator来确定HttpServletRequest对象是否包含包含有效用户ID的cookie。 如果这样做的话它还会找出Spring Social的UsersConnectionRepository是否包含链接到相同用户ID的ConnectionRepository 。 如果这两个测试都返回true则应用程序将请求并显示用户的Facebook数据。 如果两个测试之一返回false则将要求用户登录。 SocialContext是专门为该示例编写的并且包含足够的功能来演示我在此博客中所讨论的内容。 这意味着它目前有点粗糙并且可以使用尽管可以对其进行改进以涵盖与任何/许多提供程序的连接然后在不同的应用程序中重复使用。 最后要提到的类是FacebookConfig 它大致基于Spring Social示例代码。 此代码与示例代码之间有两个主要区别其中一个是FacebookConfig类实现InitializingBean接口。 这样可以将usersConnectionRepositiory变量注入到socialContext中 然后可以将socialContext作为其ConnectionSignUp实现注入到usersConnectionRepositiory中。 第二个区别是我正在实现providerSignInController...方法以提供正确配置的ProviderSignInController对象Spring Social将使用该对象登录Facebook。 我在此处所做的默认设置的唯一更改是将ProviderSignInController的postSignInUrl属性设置为“ / posts ”。 这是页面的URL将包含用户Facebook数据并在用户登录完成后被调用。 Configurationpublic class FacebookConfig implements InitializingBean {private static final Logger logger LoggerFactory.getLogger(FacebookConfig.class);private static final String appId 439291719425239;private static final String appSecret 65646c3846ab46f0b44d73bb26087f06;private SocialContext socialContext;private UsersConnectionRepository usersConnectionRepositiory;Injectprivate DataSource dataSource;/*** Point to note: the name of the bean is either the name of the method* socialContext or can be set by an attribute* * Bean(namemyBean)*/Beanpublic SocialContext socialContext() {return socialContext;}Beanpublic ConnectionFactoryLocator connectionFactoryLocator() {logger.info(getting connectionFactoryLocator);ConnectionFactoryRegistry registry new ConnectionFactoryRegistry();registry.addConnectionFactory(new FacebookConnectionFactory(appId, appSecret));return registry;}/*** Singleton data access object providing access to connections across all* users.*/Beanpublic UsersConnectionRepository usersConnectionRepository() {return usersConnectionRepositiory;}/*** Request-scoped data access object providing access to the current users* connections.*/BeanScope(value request, proxyMode ScopedProxyMode.INTERFACES)public ConnectionRepository connectionRepository() {String userId socialContext.getUserId();logger.info(Createung ConnectionRepository for user: userId);return usersConnectionRepository().createConnectionRepository(userId);}/*** A proxy to a request-scoped object representing the current users* primary Facebook account.* * throws NotConnectedException* if the user is not connected to facebook.*/BeanScope(value request, proxyMode ScopedProxyMode.INTERFACES)public Facebook facebook() {return connectionRepository().getPrimaryConnection(Facebook.class).getApi();}/*** Create the ProviderSignInController that handles the OAuth2 stuff and* tell it to redirect back to /posts once sign in has completed*/Beanpublic ProviderSignInController providerSignInController() {ProviderSignInController providerSigninController new ProviderSignInController(connectionFactoryLocator(),usersConnectionRepository(), socialContext);providerSigninController.setPostSignInUrl(/posts);return providerSigninController;}Overridepublic void afterPropertiesSet() throws Exception {JdbcUsersConnectionRepository usersConnectionRepositiory new JdbcUsersConnectionRepository(dataSource,connectionFactoryLocator(), Encryptors.noOpText());socialContext new SocialContext(usersConnectionRepositiory, new UserCookieGenerator(), facebook());usersConnectionRepositiory.setConnectionSignUp(socialContext);this.usersConnectionRepositiory usersConnectionRepositiory;}} 申请流程 如果您运行此应用程序2首先会看到一个主屏幕其中包含一个简单的链接邀请您显示帖子。 首次单击此链接时您将重定向到/ signin页面。 按下“登录”按钮指示ProviderSignInController与Facebook联系。 身份验证完成后 ProviderSignInController会将应用程序定向回/ posts页面这一次它将显示Facebook数据。 组态 为了完整起见我认为我应该提到XML配置尽管它没有太多因为我在FacebookConfig类上使用了Spring注释Configuration 。 我已经从Spring Social导入了“ data.xml ”以便JdbcUsersConnectionRepository可以工作并添加了 context:component-scan base-packagecom.captaindebug.social / …用于自动接线。 摘要 尽管此示例应用程序基于将应用程序连接到用户的Facebook数据的基础但可以轻松地对其进行修改以使用任何Spring Social客户端模块。 如果您喜欢挑战请尝试在所有中文版本的地方实施Sina-Weibo-这是一个挑战但是Google Translate确实很有用。 1个Spring社交和其他OAuth博客 Spring Social入门 Facebook和Twitter幕后花絮 OAuth管理步骤 OAuth 2.0 Webapp流程概述 2该代码可在Github上找到https://github.com/roghughe/captaindebug.git 参考 Captain Debug的Blog博客中的JCG合作伙伴 Roger Hughes的Spring Social入门-第2部分 。 翻译自: https://www.javacodegeeks.com/2012/07/getting-started-with-spring-social-part.htmlspring social
http://www.pierceye.com/news/527429/

相关文章:

  • 上海网站建设流wordpress关闭会员
  • 网站运营的目的及意义pc网站怎么适配移动端
  • 网站深圳优化建设10月上海娱乐场所又要关门了
  • 怎么做网页文件打开别的网站河南省城乡和住房建设厅
  • 泰州公司做网站成都网页设计培训中心
  • 网站业务需求文档网站正在建设中 动态
  • 一级a做爰电影片免费网站姑苏区住房建设局网站
  • 宁夏建设教育协会网站医院网站跳出率高
  • 网站建设佰首选金手指二关于网站建设的职位
  • 网站建设公司商务网站项目书中堂东莞网站建设
  • 欧美品牌网站设计wordpress好用的文章编辑器
  • 长春网站建设q479185700強wordpress数学公式的代码
  • 郑州软件app开发公司嘉兴优化网站排名
  • 可以建微信网站的做网站的项目开发计划书
  • 湖北网站建设模板下载太原线上教学
  • 西宁网站建设开发公司开发网站监控工具
  • 外贸网站优势杭州百度快速排名提升
  • 制作个人网站论文ipage wordpress
  • 十堰建设网站首页优化大师免安装版
  • 深圳建设企业网站公司敬请期待素材
  • 网络营销网站建设课程wordpress 文章描述
  • 网站制作有什么好的介绍北京网站建设及推广招聘
  • 殡仪馆做网站的好处制作响应式网站报价
  • 网站建设平台杭州做网站前台后台是怎么连接的
  • 太原市0元网站建设wordpress wcps
  • 怎么自己做免费网站wordpress 优酷通用代码自适应
  • 网站设置三方交易深圳品牌设计公司招聘
  • 东莞响应式网站哪家好网站开发应用到的技术名词
  • 背景做网站公司docker wordpress
  • 吉林建设监理协会网站网站 服务器 虚拟主机